颤振计算中的错误,这是一个非常有趣的结果:
print('result ${43.12 - 93.12 + 50}');
<块引用>
输出 -> 结果 -7.105427357601002e-15
print('result ${43.12 + 50 - 93.12}');
<块引用>
输出 -> 结果 0
答案 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
希望你能理解。
谢谢。