Excel的数值四舍五入不一致,这导致了我的问题。使用ROUND()时,有时会四舍五入一个特定的数字,而在其他时候,会四舍五入相同的值。
我尝试将Excel设置为在设置中显示确切的值,但它没有任何改变。
这是正在发生的事的一个例子。
这是简单的公式ROUND((A1-B1)/ 2,4)
对于一条记录,我有一个值(.3159-.3152),其值等于.0007,然后除以2得到.00035。
对于下一条记录,我具有(.3554-.3547)值,该值也等于.0007并除以.00035的2个结果
因此,即使当我四舍五入到小数点后四位时,两个值都为.00035,一个值还是.0003,另一个值是.0004。相同的数字,四舍五入到相同的位数,两个结果不同。我该如何解决?
答案 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-through和Is floating point arithmetic stable?,由备受推崇的Jon Skeet所著。