round() 函式打破並返回型別

圓()打破

在 Python 2 中,在一個等於接近兩個整數的數字上使用 round()將返回從 0 開始最遠的數字。例如:

Python 2.x <= 2.7

round(1.5)  # Out: 2.0
round(0.5)  # Out: 1.0
round(-0.5)  # Out: -1.0
round(-1.5)  # Out: -2.0

然而,在 Python 3 中, round() 將返回偶數整數(也就是銀行家的舍入 )。例如:

Python 3.x >= 3.0

round(1.5)  # Out: 2
round(0.5)  # Out: 0
round(-0.5)  # Out: 0
round(-1.5)  # Out: -2

round() 函式遵循 half 到 even 舍入 策略,該策略將中間數字舍入為最接近的偶數(例如,round(2.5) 現在返回 2 而不是 3.0)。

根據維基百科的參考 ,這也稱為無偏舍入收斂舍入統計學舍入荷蘭舍入高斯舍入奇偶舍入

一半甚至四捨五入是 IEEE 754 標準的一部分,它也是微軟 .NET 中的預設舍入模式。

這種舍入策略傾向於減少總舍入誤差。由於平均而言,向上舍入的數字量與向下舍入的數字量相同,因此舍入錯誤會被取消。其他舍入方法則傾向於在平均誤差中具有向上或向下偏差。

round() 返回型別

round() 函式在 Python 2.7 中返回 float 型別

Python 2.x <= 2.7

round(4.8)
# 5.0

從 Python 3.0 開始,如果省略第二個引數(位數),則返回 int

Python 3.x >= 3.0

round(4.8)
# 5