excel的围绕数字不一致,这引起了我的问题。当使用圆((时,有时它会将特定的数字汇总起来,而在其他时候则将相同的值降低。
我已经尝试将Excel设置为在设置中显示精确的值,但不会更改任何内容。
这是正在发生的事情的示例。
这是简单的公式圆((A1-B1(/2,4(
对于一个记录,我有值(.3159 - .3152(,然后评估为.0007,然后除以2以获取.00035。
对于下一个记录,我有值(.3554 - .3547(,该值也评估为.0007,并除以2个结果。00035
因此,即使两个值都是.00035,当我四舍五入到4个小数点时,我将获得.0003的一个和.0004。相同的数字,四舍五入到相同数量的位置,两个不同的结果。我该如何解决?
这是固有且无法避免的浮点数的问题。
。在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
进一步阅读:浮点算术是否稳定?和二进制浮点和.NET,由备受推崇的Jon Skeet。