回 帖 发 新 帖 刷新版面

主题:为什么round(5/2)=2而round(3/2)也等于2呢????

为什么round(5/2)=2而round(3/2)也等于2呢????

这个round函数是怎样的一个算法啊.....

回复列表 (共4个回复)

沙发

round(x)
如果X正好是两个整数中间的一半的数,就返回一个偶数。

板凳

四舍五入啊

3 楼

round(x)
如果X正好是两个整数中间的一半的数,就返回一个偶数。
 
是这样的,多试两个就知道了!

4 楼

这是因为计算机表示的浮点数的临界值问题,浮点数5.0在机内用4.99999999...(N个9,根据机器字长决定), 所以/2后得到的是2.499999999(也是N个9),而round是从小数点后一位开始四舍五入,所以就等于2了,要想得到正确值,在5上加个临界值,看你要表示的小数位示,如加上0.00001则可计算四位小数的准确值

我来回复

您尚未登录,请登录后再回复。点此登录或注册