Converts a floating point number to a string.
#include <prdtoa.h> PRStatus PR_dtoa( PRFloat64 d, PRIntn mode, PRIntn ndigits, PRIntn *decpt, PRIntn *sign, char **rve, char *buf, PRSize bufsz);
The function has these parameters:
- The floating point number to be converted to a string.
- The type of conversion to employ.
- The number of digits desired in the output string.
- 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.
- A location where the runtime can store an indication that the conversion was of a negative value.
- If not
NULLthis location is set to the address of the end of the result.
- The address of the buffer in which to store the result.
- The size of the buffer provided to hold the result.
The principle output is the null-terminated string stored in
rve is not
*rve is set to point to the end of the returned value.
This function converts the specified floating point number to a string, using the method specified by
mode. Possible modes are:
- Shortest string that yields
dwhen read in and rounded to nearest.
- Like 0, but with Steele & White stopping rule. For example, with IEEE 754 arithmetic, mode 0 gives 1e23 whereas mode 1 gives 9.999999999999999e22.
max(1, ndigits)significant digits. This gives a return value similar to that of
ecvt, except that trailing zeros are suppressed.
ndigitspast the decimal point. This gives a return value similar to that from
fcvt, except that trailing zeros are suppressed, and
ndigitscan be negative.
- Same as modes 2 and 3, but using left to right digit generation.
- Same as modes 2 and 3, but do not try fast floating-point estimate (if applicable).
- Treated as mode 2.
Upon return, the buffer specified by
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 or NAN,
*decpt is set to 9999.