The
humanize_number() function formats the signed 64 bit quantity given in
number into
buffer. A space and then
suffix is appended to the end.
buffer must be at least
len bytes long.
If the formatted number (including
suffix) would be too long to fit into
buffer, then divide
number by 1024 until it will. In this case, prefix
suffix with the appropriate SI designator.
The prefixes are:
Prefix
Description
Multiplier
E
exa
1152921504606846976
len must be at least 4 plus the length of
suffix, in order to ensure a useful result is generated into
buffer. To use a specific prefix, specify this as
scale (Multiplier = 1024 ^ scale). This can not be combined with any of the
scale flags below.
The following flags may be passed in
scale:
HN_AUTOSCALE
Format the buffer using the lowest multiplier possible.
HN_GETSCALE
Return the prefix index number (the number of times number must be divided to fit) instead of formatting it to the buffer.
The following flags may be passed in
flags:
HN_DECIMAL
If the final result is less than 10, display it using one digit.
HN_NOSPACE
Do not put a space between number and the prefix.
HN_B
Use 'B' (bytes) as prefix if the original result does not have a prefix.
HN_DIVISOR_1000
Divide number with 1000 instead of 1024.
The
dehumanize_number() function parses the string representing an integral value given in
str and stores the numerical value in the integer pointed to by
result. The provided string may hold one of the suffixes, which will be interpreted and used to scale up its accompanying numerical value.