STRPCT(3) | Library Functions Manual | STRPCT(3) |
strpct
, strspct
—
#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);
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.
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.
strpct(buf, buflen, 1, 16, 3); ⇒ "6.250" strpct(buf, buflen, 1, 2, 0); ⇒ "50"
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.
January 7, 2012 | NetBSD 9.2 |