dartlang中的double.toStringAsFixed和toStringAsPrecision有什么区别?

时间:2019-08-22 12:34:02

标签: dart

我想知道这两种方法之间的区别。我以为toStringAsFixed会修剪数字,但从doc中的示例来看,两者都是四舍五入。

这是相关问题:https://github.com/dart-lang/sdk/issues/25947

1 个答案:

答案 0 :(得分:1)

1。 Double.toStringAsPrecision(int)

它检查所需的精度,并相应地四舍五入并返回结果。

double d = 1.59;
String precision1 = d.toStringAsPrecision(1); // 2
String precision2 = d.toStringAsPrecision(2); // 1.6
String precision3 = d.toStringAsPrecision(3); // 1.59
String precision4 = d.toStringAsPrecision(4); // 1.590

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