Python3和Python2中round函数的差异
Python2中round函数为四舍五入:
>>> round(1.5)
2.0
>>> round(2.5)
3.0
>>> round(3.5)
4.0
>>> round(4.5)
5.0
Python3中当遇到5的时候会舍入到最近的偶数
>>> round(1.5)
2
>>> round(2.5)
2
>>> round(3.5)
4
>>> round(4.5)
4
如何在Python3中实现Python2中的round函数呢?
def py2_round(num, ndigits=0):
"""
Rounds a float to the specified number of decimal places like python2.
Args:
num (int/float/np.ndarray): the value to round
ndigits (int, optional): the number of digits to round to. Defaults to 0.
"""
digit_value = 10 ** ndigits
return np.trunc(num * digit_value + 0.5) / digit_value
本文介绍了Python3和Python2中round函数的行为区别:Python2简单四舍五入,而Python3对于5则遵循银行家舍入规则,即向最接近的偶数舍入。在Python3中要实现Python2的round行为,可以使用提供的`py2_round`函数,该函数通过乘以10的相应幂次并加0.5后再除回实现四舍五入。
2145

被折叠的 条评论
为什么被折叠?



