Returns the shortest string that correctly represent the input number.
All doubles in the range 10^-6
(inclusive) to 10^21
(exclusive)
are converted to their decimal representation with at least one digit
after the decimal point. For all other doubles,
except for special values like NaN
or Infinity
, this method returns an
exponential representation (see toStringAsExponential).
Returns "NaN"
for double.NAN, "Infinity"
for double.INFINITY, and
"-Infinity"
for double.MINUS_INFINITY.
An int is converted to a decimal representation with no decimal point.
Examples:
(0.000001).toString(); // "0.000001"
(0.0000001).toString(); // "1e-7"
(111111111111111111111.0).toString(); // "111111111111111110000.0"
(100000000000000000000.0).toString(); // "100000000000000000000.0"
(1000000000000000000000.0).toString(); // "1e+21"
(1111111111111111111111.0).toString(); // "1.1111111111111111e+21"
1.toString(); // "1"
111111111111111111111.toString(); // "111111111111111110000"
100000000000000000000.toString(); // "100000000000000000000"
1000000000000000000000.toString(); // "1000000000000000000000"
1111111111111111111111.toString(); // "1111111111111111111111"
1.234e5.toString(); // 123400
1234.5e6.toString(); // 1234500000
12.345e67.toString(); // 1.2345e+68
Note: the conversion may round the output if the returned string
is accurate enough to uniquely identify the input-number.
For example the most precise representation of the double 9e59
equals
"899999999999999918767229449717619953810131273674690656206848"
, but
this method returns the shorter (but still uniquely identifying) "9e59"
.
Source
/**
* Returns the shortest string that correctly represent the input number.
*
* All [double]s in the range `10^-6` (inclusive) to `10^21` (exclusive)
* are converted to their decimal representation with at least one digit
* after the decimal point. For all other doubles,
* except for special values like `NaN` or `Infinity`, this method returns an
* exponential representation (see [toStringAsExponential]).
*
* Returns `"NaN"` for [double.NAN], `"Infinity"` for [double.INFINITY], and
* `"-Infinity"` for [double.MINUS_INFINITY].
*
* An [int] is converted to a decimal representation with no decimal point.
*
* Examples:
*
* (0.000001).toString(); // "0.000001"
* (0.0000001).toString(); // "1e-7"
* (111111111111111111111.0).toString(); // "111111111111111110000.0"
* (100000000000000000000.0).toString(); // "100000000000000000000.0"
* (1000000000000000000000.0).toString(); // "1e+21"
* (1111111111111111111111.0).toString(); // "1.1111111111111111e+21"
* 1.toString(); // "1"
* 111111111111111111111.toString(); // "111111111111111110000"
* 100000000000000000000.toString(); // "100000000000000000000"
* 1000000000000000000000.toString(); // "1000000000000000000000"
* 1111111111111111111111.toString(); // "1111111111111111111111"
* 1.234e5.toString(); // 123400
* 1234.5e6.toString(); // 1234500000
* 12.345e67.toString(); // 1.2345e+68
*
* Note: the conversion may round the output if the returned string
* is accurate enough to uniquely identify the input-number.
* For example the most precise representation of the [double] `9e59` equals
* `"899999999999999918767229449717619953810131273674690656206848"`, but
* this method returns the shorter (but still uniquely identifying) `"9e59"`.
*
*/
String toString();