- 主题:请教 round(0.5)=0 这种与通常原理不同的结果
强Re!
但是这个对部分初学者会造成python不如MATLAB精确的印象。
【 在 Madlee 的大作中提到: 】
: 这个不是因为精度问题,而是统计学的一个习惯,四舍六入五成双。
:
--
FROM 223.102.42.*
IEEE标准里 0.5 恰恰是为数不多的能精确表示的小数之一
所以这个就是 round 规则问题,和浮点精度一点关系没有
也不知道谁普遍堪忧了
【 在 Jacqueline 的大作中提到: 】
: 这是IEEE的标准,看来计原课的基础教学普遍堪忧啊。。。
--
FROM 221.217.48.*
【 在 workbooks 的大作中提到: 】
: 我发现 round 的结果并不是通常数学原理上的四舍五入,
: 比如,我用的是 Python3.8.3,运行结果如下:
: round(0.5) 返回 0
: ...................
python的实现本来就不是四舍五入,
python实现的舍入算法正确的名字叫银行家算法,
>>> round(0.50000000000000002)
0
>>> round(0.5000000000000002)
1
>>> round(0.50000000000000009)
1
>>> round(0.500000000000000009)
0
--
FROM 124.126.0.*