| STRPCT(3) | Library Functions Manual | STRPCT(3) | 
NAME
 strpct, strspct — decimal percent formatters
LIBRARY
 System Utilities Library (libutil, -lutil)
SYNOPSIS
 #include <util.h>
char *
strpct(char *buf, size_t bufsiz, uintmax_t numerator, uintmax_t denominator, size_t precision);
char *
strspct(char *buf, size_t bufsiz, intmax_t numerator, intmax_t denominator, size_t precision);
 
DESCRIPTION
 The strpct() function formats the fraction represented by numerator and denominator into a percentage representation with given number of digits of precision without using floating point arithmetic.
RETURN VALUES
 strpct() and strspct() always return a pointer to a NUL-terminated (unless buflen is 0) formatted string which is placed in buf and is up to buflen characters. If there was an overflow, the formatted string will reflect that precision loss.
EXAMPLES
strpct(buf, buflen, 1, 16, 3); 
⇒ "6.250" 
strpct(buf, buflen, 1, 2, 0); 
⇒ "50"
 
HISTORY
 strpct() was originally implemented in 
csh(1) for 
NetBSD 1.3. It printed into a static buffer, was not locale aware, handled 
unsigned long numbers, and printed a “%” at the end of the number. Other programs such as 
df(1) and 
time(1) started using it. 
strpct() and 
strspct() appeared separately in libutil for 
NetBSD 6.0.
 
AUTHORS
 Erik E. Fair <fair@netbsd.org>