NAME
strpct
, strspct
— decimal percent
formatters
LIBRARY
library “libutil”
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
Thestrpct
()
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>