Excel将一个记录中的数字四舍五入,将另一个记录中的数字四舍五入

时间:2019-05-01 19:04:09

标签: excel rounding

Excel的数值四舍五入不一致,这导致了我的问题。使用ROUND()时,有时会四舍五入一个特定的数字,而在其他时候,会四舍五入相同的值。

我尝试将Excel设置为在设置中显示确切的值,但它没有任何改变。

这是正在发生的事的一个例子。

这是简单的公式ROUND((A1-B1)/ 2,4)

对于一条记录,我有一个值(.3159-.3152),其值等于.0007,然后除以2得到.00035。

对于下一条记录,我具有(.3554-.3547)值,该值也等于.0007并除以.00035的2个结果

因此,即使当我四舍五入到小数点后四位时,两个值都为.00035,一个值还是.0003,另一个值是.0004。相同的数字,四舍五入到相同的位数,两个结果不同。我该如何解决?

1 个答案:

答案 0 :(得分:1)

这是一个固有的浮点数问题,无法解决,只能避免。

在Excel中尝试以下测试:

=(0,3159-0,3152)=(0,3554-0,3547)给您FALSE

=(0,3159-0,3152)-(0,3554-0,3547)会给您类似5.55112E-17的东西。

如果您不能接受差异,则应该已经在计算的中间四舍五入,而不仅仅是在最后:

=ROUND(0.3159-0.3152,4)=ROUND(0.3554-0.3547,4)TRUE

=ROUND(0.3159-0.3152,4)-ROUND(0.3554-0.3547,4)0

进一步阅读:walk-throughIs floating point arithmetic stable?,由备受推崇的Jon Skeet所著。