EXCEL函数ROUND舍不上去,懂的进

[复制链接]
查看11 | 回复5 | 2010-8-12 14:35:21 | 显示全部楼层 |阅读模式
我的数据A1=3215 A2=6.775 A3=21816.35
=ROUND(A1*A3-A2,2) =-34.72
实际上算出来的答案是 -34.725答案应该是 -34.73 很费解,哪位大侠知道为什么会出现这样了,如果直接是=ROUND(-34.725,2)=-34.73 是正常的,在线等,万分感谢~~
3215*6.775=21781.625-21816.35=34.725 一楼和二楼的答案怎么算出来的,有这么多位,奇怪啊,什么浮点数,3楼的什么精度问题啊,普通的计算机按出来也是这个数

回复

使用道具 举报

千问 | 2010-8-12 14:35:21 | 显示全部楼层
因为电脑的运算是二进制的运算方式,在存储数字时,对应的二进制数字可能会产生浮点的误差。也就是你遇到的这种情况。比如=43.1-43.2 的结果是-0.100000000000001 而不是-0.1 你选中后按F9就能看到了。楼上的那个=ROUND(ROUND(A33*B33-C33,3),2)不严谨 最好改成=ROUND(ROUND(A33*B33-C33,9),2)
回复

使用道具 举报

千问 | 2010-8-12 14:35:21 | 显示全部楼层
将公式改为:=ROUND(ROUND(A33*B33-C33,3),2)原因楼上的都说的很明白,主要是浮点数原因,可以百度:浮点数。
回复

使用道具 举报

千问 | 2010-8-12 14:35:21 | 显示全部楼层
负数是绝对值越大值越小,四舍五入怎么可能往小的方向舍去呢?所以答案是 -34.72是正确的而不是-34.73 如果你要想得到-34.73 输入这个函数=-ROUND(ABS(A1*A3-A2),2)就可以了
回复

使用道具 举报

千问 | 2010-8-12 14:35:21 | 显示全部楼层
这就是精确度的问题了,很正常的你用怎样的计算方式就会有怎样的结果
回复

使用道具 举报

千问 | 2010-8-12 14:35:21 | 显示全部楼层
应该浮点数在作怪吧!A1*A3-A2的结果是-34.724999...四舍五入后就杯具了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行