excel表 小数点只有两位的数据求和,出现误差怎么解决

做表格的时候,所有的数据都是手工输入,最多之后小数点后两位,但是使用求和公式的时候在小数点后十几位竟然出现了误差,求解决办法?
ps:1、所有数字都是两位数,不存在四舍五入的问题;2、没使用ROUND函数;3、所有格式均已设为数值

原因:在Excel进行计算时在计算机中是转换成二进制进算然后保留数值的,所以会出现误差。

解决方法:

1、打开excel表格,在单元格A1中输入数字“2.88”,在单元格B1中输入数字“5.89”。

2、在C1单元格中输入计算公式:=(ROUND(A1,2))+ROUND(B1,2),意思为使用ROUND函数确保小数位为2位。

3、点击回车生成函数公式计算结果,得到的数值为“8.77”。

4、复制C1单元格,在C2点击右键,选择“粘贴数值”。

5、粘贴之后,可以看到计算得到的数值是小数点显示后两位,没有出现误差。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-04-30

原因:这是由于浮点运算造成的。(在微软官方有详细说明的)

(0.65)10 = (0.101001100110011001100110011001100110011......)2
(0.6) 10 = (0.10011001100110011001100110011001100110011......)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()函数将其保留固定的小数位。

方法二:

工具----选项----重新计算---勾选【以显示精度为准】

本回答被提问者和网友采纳
第2个回答  2014-04-30

设置小数位数为2

追问

根本不用设,所有数据只有两位小数,但是求和之后在很多位数的地方出现误差

第3个回答  2014-04-30
截个图来看看追问

公司电脑,图片上传不了的,简单描述就是:1.1和1两个数字,用SUM求和之后变成了2.100000000000000000005

追答

不要纠结,这个误差不影响计算和使用的话,设置单元格数值格式为两位小数就可以了

相似回答