内容导航:


一、excel计算误差问题


1、可能你的几个加数是通过计算得出来的结果,比如2/3=0.6666……,而设定的现实位数只有两位,你看到的显示是0.67,而这并不是真实数据。
2、Excel对单元格数值的默认精度是15位(包括小数点在内),如果你的数据的数字个数超过了15位,则可能会有误差。从网上找了一下资料,有详细解释,希望对你有所帮助:
-----------------杜绝Excel的计算误差
一位同事近日向笔者诉苦,说他经常对数百人的Excel数据表进行个人所得税的计算操作,但Excel计算的汇总数时常与实际的汇总数相差一两分钱。这是为什么呢?其实,Excel对单元格数值的默认精度是15位(包括小数点在内),尽管在单元格中您仅看到小数点后的两位数,但实际参与计算的是默认精度而不是单元格中的显示值
以下的方法可以让Excel使用显示值进行计算,从而避免计算误差。
1.在“工具”菜单上,单击“选项”。2.单击“重新计算”选项卡,选中“以显示值为准”复选框。再单击“确定”按钮。至此,我们就将单元格数值的精度由默认的15位精度更改为当前显示的精度了。以后,Excel就以显示值为准进行计算,从而可以杜绝计算时的误差。


二、excel里怎么算2个数值的误差


目前计算机上存储浮点数值照IEEE(电气和电子工程师协会)754浮点存储格式标准来存储的。IEEE单精度浮点格式共32位,包含三个构成字段:23位小数f,8位偏置指数e,1位符号s。将这些字段连续存放在一个32位字里,并对其进行编码。其中0:22位包含23位的小数f;
23:30位包含8位指数e;第31位包含符号s。也就是说上面将0.65及0.5转换出的二进制代码,我们只能存储23位,即使数据类型为double,也只能存储52位,这样大家便能看出问题出现的原因了。
截取的二进制代码已无法正确表示0.65及0.5,根据这个二进制代码肯定无法正确得到结果0.05.
在Excel进行计算时在计算机中是转换成二进制进算然后保留数值的,所以会出现误差。
方法一:
将原公式利用round()函数将其保留固定的小数位。
方法二:
工具----选项----重新计算---勾选【以显示精度为准】