# PR_dtoa Converts a floating point number to a string. ## Syntax ```{code} #include 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 of `ecvt`, except that trailing zeros are suppressed. `3` : Through `ndigits` past the decimal point. This gives a return value similar to that from `fcvt`, except that trailing zeros are suppressed, and `ndigits` can be negative. `4,5,8,9` : Same as modes 2 and 3, but using*left 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* or*NAN*, `*decpt` is set to 9999.