颤振计算错误

时间:2021-02-15 06:55:41

标签: android flutter dart

颤振计算中的错误,这是一个非常有趣的结果:

print('result ${43.12 - 93.12 + 50}');
<块引用>

输出 -> 结果 -7.105427357601002e-15

 print('result ${43.12  + 50 - 93.12}');
<块引用>

输出 -> 结果 0

this image show what dart calculation went wrong

1 个答案:

答案 0 :(得分:0)

您需要将结果转换为 Double 或避免 2 位数后的值。

print('result ${43.12 - 93.12 + 50}');                // result -7.105427357601002e-15
print('result ${43.12 + 50 - 93.12}');                // result 0
print('result ${(43.12 - 93.12).toDouble() + 50}');   // result -7.105427357601002e-15

这只是因为在第二行它会做增量43.12 + 50 显然是固定的 93.12。但是在第一个中,您将两个双数相减,结果将是 43.12 - 93.12 将是 -50.00000000000001 小数点后有 14 位数字,应转换为小数点后两位数字。< /p>

并且 -50.00000000000001 + 50 将作为指数值-7.105427357601002e-15

希望你能理解。

谢谢。