File: pr_dtoa.rst

package info (click to toggle)
firefox 147.0.3-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 4,683,320 kB
  • sloc: cpp: 7,607,359; javascript: 6,533,295; ansic: 3,775,223; python: 1,415,500; xml: 634,561; asm: 438,949; java: 186,241; sh: 62,752; makefile: 18,079; objc: 13,092; perl: 12,808; yacc: 4,583; cs: 3,846; pascal: 3,448; lex: 1,720; ruby: 1,003; php: 436; lisp: 258; awk: 247; sql: 66; sed: 54; csh: 10; exp: 6
file content (93 lines) | stat: -rw-r--r-- 2,494 bytes parent folder | download | duplicates (17)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
PR_dtoa
=======

Converts a floating point number to a string.


Syntax
------

.. code::

   #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 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.