I want know what's difference between these two methods. I thought toStringAsFixed
trims the number but from the examples in doc, both are rounding the numbers.
Here's the related issue: https://github.com/dart-lang/sdk/issues/25947
I want know what's difference between these two methods. I thought toStringAsFixed
trims the number but from the examples in doc, both are rounding the numbers.
Here's the related issue: https://github.com/dart-lang/sdk/issues/25947
1. Double.toStringAsPrecision(int)
Converts a num
to a double
and returns a String
representation with exactly precision significant digits.
The parameter precision must be an integer satisfying: 1 <= precision <= 21
.
Examples:
1.toStringAsPrecision(2); // 1.0
1e15.toStringAsPrecision(3); // 1.00e+15
1234567.toStringAsPrecision(3); // 1.23e+6
1234567.toStringAsPrecision(9); // 1234567.00
12345678901234567890.toStringAsPrecision(20); // 12345678901234567168
12345678901234567890.toStringAsPrecision(14); // 1.2345678901235e+19
0.00000012345.toStringAsPrecision(15); // 1.23450000000000e-7
0.0000012345.toStringAsPrecision(15); // 0.00000123450000000000
2. Double.toStringAsFixed(int)
It also rounds the number but after the decimal place and return the result according to the int
value you provide.
double d = 1.59;
String fixed1 = d.toStringAsFixed(1); // 1.6
String fixed2 = d.toStringAsFixed(2); // 1.59
String fixed3 = d.toStringAsFixed(3); // 1.590
String fixed4 = d.toStringAsFixed(4); // 1.5900