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