如何进行精确的十进制计算?

时间:2014-01-24 08:01:57

标签: dart

我需要进行十进制计算,但有时结果并不准确。

0.009 + 0.001; // => 0.009999999999999998

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:4)

您可以使用decimal package。该软件包可以对十进制数进行计算,而不会像双重操作那样失去精度。

Decimal.parse('0.2') + Decimal.parse('0.1'); // => 0.3

Decimal.parse('0.2')会返回一个新的Decimal对象,可以像num一样处理(顺便说一句Decimal不是num,因为num不能用作超类或实现)。

为了缩短您的代码,您可以为Decimal.parse

定义快捷方式
final d = Decimal.parse;
d('0.2') + d('0.1'); // => 0.3