ROUND的奇怪结果
hhzjxss
hhzjxss Lv.12
2007年05月12日 18:37:40
来自于水利软件
只看楼主

ROUND的奇怪结果 =ROUND((1601.3-1600)*0.05,2) =0.06=ROUND(1.3*0.05,2) =0.07 这是什么原因呢?我用公式求值看看发现ROUND((1601.3-1600)*0.05,2) =ROUND(1.29999999999995*0.05,2) =0.06真奇怪,也就是1601.3-1600=1.2999999999995而不是1.3,真晕!

ROUND的奇怪结果



=ROUND((1601.3-1600)*0.05,2) =0.06


=ROUND(1.3*0.05,2) =0.07



这是什么原因呢?

我用公式求值看看发现ROUND((1601.3-1600)*0.05,2) =ROUND(1.29999999999995*0.05,2) =0.06

真奇怪,也就是1601.3-1600=1.2999999999995而不是1.3,真晕!



附件在4楼,大家下载看看吧!

免费打赏
abncdd
2007年05月12日 22:57:53
2楼
你那个1601.3是不是也是计算出来取整的。
回复
山水之间
2007年05月12日 22:58:57
3楼
这个也能发现,版主真够厉害的呀.不知道还有哪些有趣的没发现?
回复
hhzjxss
2007年05月13日 09:04:15
4楼


不是,是直接在公式里面输入的,你可以看看!

我把附件上传,大家看看,讨论一下吧!


回复
tcmjxh123
2007年05月13日 14:37:58
5楼
可能这是软件的一点小小不足,把四舍五入的位数改为3就一样了。
回复
山水之间
2007年05月13日 20:04:24
6楼
附件发上来我打开看了还是没怎么看明白.呵呵
回复
hhzjxss
2007年05月14日 07:57:46
7楼


你试着在某单元格里面输入=1601.3-1600

再看看结果吧,竟然是1.29999999999995,而不是1.3,你难道感到不奇怪吗?

当然,这个结果必需是将单元格的小数位数增加到许多假位才能发现的!
回复
山水之间
2007年05月14日 08:10:33
8楼
还真的是这样.也不知EXCEL是怎么搞的.一般人还真轻易不能发现这个
回复
hhzjxss
2007年05月14日 09:16:23
9楼
据说这是浮点计算的问题,我也没搞清楚到底是什么问题!
回复
abncdd
2007年05月14日 10:00:50
10楼
这不是round的问题,是excel的问题,
其它的数字计算也是一样的,但是0.5-0.3显示却是正常的。
回复
hhzjxss
2007年05月14日 11:13:15
11楼


对,是excel的问题,所以1601.3-1600=1.29999999999995。哎!晕!
回复

相关推荐

APP内打开