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.