excel 两数相减出现的问题!!!

来源:百度知道 编辑:UC知道 时间:2024/09/25 14:29:55
d5=552.8 e5=524.2 在使用【【=IF(AND(D5>0,E5>=0,D5>E5),"增盈"&ABS(D5-E5))】】这个语句后,发现得出了【【增盈28.5999999999999】】的结果,使用其它整数的时候,却没有这么多位小数。我尝试改变该结果单元格格式为取1位小数,可仍是这个结果,请问是什么原因??请高手帮忙解决,谢谢!

在 Excel 中浮点运算可能会给出不准确的结果,详细说明请看:
http://support.microsoft.com/kb/78113
里面给出了两种解决方法.
1使用ROUND函数
2工具->选项->重新计算->以显示精度为准.
可能采用以下公式解决:
=IF(AND(D5>0,E5>=0,D5>E5),"增盈"&round(ABS(D5-E5)))

把公式改一下,加入Round()函数:=IF(AND(D5>0,E5>=0,D5>E5),"增盈" & ROUND(ABS(D5-E5),2))

这个原因是因为:小数在计算机中的存储,因为计算机中总是用1和0,整数可以精确表示,但对于小数,却只能近似地表示,如:0.11111001101,有限的0与1是无法精确表示小数,就造成最后会差那么一点点。

解决方法就是4舍5入,取1到2位小数。

=IF(AND(D5>0,E5>=0,D5>E5),"增盈"&ROUND(D5-E5,2))

将abs(d5-e5)改为int(abs(d5-e5)*10+0.5)/10

=IF(AND(D5>0,E5>=0,D5>E5),"增盈"&round(ABS(D5-E5),1))
用这个在试试