Excel浮点计算误差,对计算结果会有一定的影响,这个在日常的计算中一定要注意,如果是正常的数值运算,基本上不会出现错误了:
例如:
0.82-0.8=0.02
但是如果在外面套上函数就会出现问题:
=INT((B2-A2)*100)
应该得到的结果是2,但是Excel给出的结果却是1,我们通过查看函数计算过程发现,两个小数相减,得到的结果不是0.02,而是0.0199999999999999这样一个值,这就是Excel浮点计算的误差,我们做了一个简单的测试,发现绝大多数的数值运算函数,都会受这个误差的影响,导致计算结果出现错误。
有趣的是这个影响的数值范围:
各种带8的或者1.2-1.1,又不是所有的差值在0.1的都会显示0.999999999999999,规律很难找出来。
我试了几个这种
1.882-1.8
2.8882-2.88
这样的都会出现浮点误差。
出现误差怎么办?微软提示两个办法:
- ROUND函数来确定精度:
为了防止这个误差,嵌套一个ROUND函数来截断数据
- Excel选项中规定计算精度:
高级选项卡下面的计算工作簿,勾选计算精度为显示精度。
在保存工作簿时,除两个小数位数之外的所有精度都将丢失。 此选项影响活动工作簿,包括所有工作表。 您无法撤消此选项并恢复丢失的数据。 建议您在启用此选项之前保存工作簿。
这是微软的原话,我觉得这个误差多是出现在绝对值小于0的小数运算,那么很多时候是在计算各种百分比时会出现误差,尤其是在绩效核算时的打分计算中,多扣分了同事不高兴,少扣钱了老板不满意。一定要多加小心,认真验算。
,