我需要进行十进制计算,但有时结果并不准确。
0.009 + 0.001; // => 0.009999999999999998
我该如何解决这个问题?
答案 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