Excel 总和不正确
Excel sum incorrect
我想在 excel 中对这些数字求和:
232.270000000000000000000
252527.770000000000000000000
126285.000000000000000000000
-378856.000000000000000000000
631426.000000000000000000000
126285.000000000000000000000
126285.000000000000000000000
126287.000000000000000000000
126285.000000000000000000000
126285.000000000000000000000
126285.000000000000000000000
-1389137.000000000000000000000
总和(即 Sum(A1:A13)
给出以下结果:190.040000000037000000
希望您能看到我的问题(我结果的小数点后的“37000000”是什么?)
诸如此类的舍入错误来自于使用双精度数据类型而不是十进制数据类型。结果是计算速度 运行 更快,但当小数点后有很多数字时,准确性会受到影响。避免此类错误的唯一方法是在计算完成后通过乘法并再次引入来消除浮点数。
此错误是因为您的号码中有 .27 和 .77。这是 floating point accuracy problems 的结果。
例如,您不能用二进制表示值 0.1、0.01。在24位精度下,0.1的实际值实际上是0.100000001490116119384765625.
所以在你的例子中也会发生同样的情况。
我想在 excel 中对这些数字求和:
232.270000000000000000000
252527.770000000000000000000
126285.000000000000000000000
-378856.000000000000000000000
631426.000000000000000000000
126285.000000000000000000000
126285.000000000000000000000
126287.000000000000000000000
126285.000000000000000000000
126285.000000000000000000000
126285.000000000000000000000
-1389137.000000000000000000000
总和(即 Sum(A1:A13)
给出以下结果:190.040000000037000000
希望您能看到我的问题(我结果的小数点后的“37000000”是什么?)
诸如此类的舍入错误来自于使用双精度数据类型而不是十进制数据类型。结果是计算速度 运行 更快,但当小数点后有很多数字时,准确性会受到影响。避免此类错误的唯一方法是在计算完成后通过乘法并再次引入来消除浮点数。
此错误是因为您的号码中有 .27 和 .77。这是 floating point accuracy problems 的结果。
例如,您不能用二进制表示值 0.1、0.01。在24位精度下,0.1的实际值实际上是0.100000001490116119384765625.
所以在你的例子中也会发生同样的情况。