Excel浮点计算误差,对计算结果会有一定的影响,这个在日常的计算中一定要注意,如果是正常的数值运算,基本上不会出现错误了:

例如:

0.82-0.8=0.02

但是如果在外面套上函数就会出现问题:

Excel中的浮点运算误差以及规避的办法(Excel中的浮点运算误差以及规避的办法)(1)

=INT((B2-A2)*100)

应该得到的结果是2,但是Excel给出的结果却是1,我们通过查看函数计算过程发现,两个小数相减,得到的结果不是0.02,而是0.0199999999999999这样一个值,这就是Excel浮点计算的误差,我们做了一个简单的测试,发现绝大多数的数值运算函数,都会受这个误差的影响,导致计算结果出现错误。

有趣的是这个影响的数值范围:

Excel中的浮点运算误差以及规避的办法(Excel中的浮点运算误差以及规避的办法)(2)

各种带8的或者1.2-1.1,又不是所有的差值在0.1的都会显示0.999999999999999,规律很难找出来。

我试了几个这种

1.882-1.8

2.8882-2.88

这样的都会出现浮点误差。

出现误差怎么办?

微软提示两个办法:

  • ROUND函数来确定精度:

为了防止这个误差,嵌套一个ROUND函数来截断数据

Excel中的浮点运算误差以及规避的办法(Excel中的浮点运算误差以及规避的办法)(3)

  • Excel选项中规定计算精度:

高级选项卡下面的计算工作簿,勾选计算精度为显示精度。

Excel中的浮点运算误差以及规避的办法(Excel中的浮点运算误差以及规避的办法)(4)

在保存工作簿时,除两个小数位数之外的所有精度都将丢失。 此选项影响活动工作簿,包括所有工作表。 您无法撤消此选项并恢复丢失的数据。 建议您在启用此选项之前保存工作簿。

这是微软的原话,我觉得这个误差多是出现在绝对值小于0的小数运算,那么很多时候是在计算各种百分比时会出现误差,尤其是在绩效核算时的打分计算中,多扣分了同事不高兴,少扣钱了老板不满意。一定要多加小心,认真验算。

,