PR_dtoa¶
Converts a floating point number to a string.
Syntax¶
#include <prdtoa.h>
PRStatus PR_dtoa(
PRFloat64 d,
PRIntn mode,
PRIntn ndigits,
PRIntn *decpt,
PRIntn *sign,
char **rve,
char *buf,
PRSize bufsz);
Parameters¶
The function has these parameters:
d
The floating point number to be converted to a string.
mode
The type of conversion to employ.
ndigits
The number of digits desired in the output string.
decpt
A pointer to a memory location where the runtime will store the offset, relative to the beginning of the output string, of the conversion’s decimal point.
sign
A location where the runtime can store an indication that the conversion was of a negative value.
*rve
If not
NULL
this location is set to the address of the end of the result.buf
The address of the buffer in which to store the result.
bufsz
The size of the buffer provided to hold the result.
Results¶
The principle output is the null-terminated string stored in buf
. If
rve
is not NULL
, *rve
is set to point to the end of the
returned value.
Description¶
This function converts the specified floating point number to a string,
using the method specified by mode
. Possible modes are:
0
Shortest string that yields
d
when read in and rounded to nearest.1
Like 0, but with Steele & White stopping rule. For example, with IEEE 754 arithmetic, mode 0 gives 1e23 whereas mode 1 gives 9.999999999999999e22.
2
max(1, ndigits)
significant digits. This gives a return value similar to that ofecvt
, except that trailing zeros are suppressed.3
Through
ndigits
past the decimal point. This gives a return value similar to that fromfcvt
, except that trailing zeros are suppressed, andndigits
can be negative.4,5,8,9
Same as modes 2 and 3, but usingleft to right digit generation.
6-9
Same as modes 2 and 3, but do not try fast floating-point estimate (if applicable).
all others
Treated as mode 2.
Upon return, the buffer specified by buf
and bufsz
contains the
converted string. Trailing zeros are suppressed. Sufficient space is
allocated to the return value to hold the suppressed trailing zeros.
If the input parameter d
is+Infinity,-Infinity orNAN,
*decpt
is set to 9999.