首页 > 解决方案 > 颤振计算错误

问题描述

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

print('result ${43.12 - 93.12 + 50}');

输出->结果-7.105427357601002e-15

 print('result ${43.12  + 50 - 93.12}');

输出 -> 结果 0

这张图片显示了飞镖计算出了什么问题

标签: androidflutterdart

解决方案


您需要将结果转换为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 位数字,应转换为小数点后两位数。

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

希望你能理解。

谢谢你。


推荐阅读