【发布时间】:2019-08-22 12:34:02
【问题描述】:
我想知道这两种方法有什么区别。我认为toStringAsFixed 会修剪数字,但从 doc 中的示例来看,两者都是四舍五入的数字。
【问题讨论】:
标签: dart
我想知道这两种方法有什么区别。我认为toStringAsFixed 会修剪数字,但从 doc 中的示例来看,两者都是四舍五入的数字。
【问题讨论】:
标签: dart
1. Double.toStringAsPrecision(int)
将num 转换为double 并返回具有精确有效数字的String 表示。
参数精度必须是满足:1 <= precision <= 21的整数。
例子:
1.59.toStringAsPrecision(1); // 2
1.59.toStringAsPrecision(2); // 1.6
1.59.toStringAsPrecision(3); // 1.59
1.59.toStringAsPrecision(4); // 1.590
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)
它还会对数字进行四舍五入,但在小数点后,并根据您提供的int 值返回结果。
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
【讨论】: