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.