看起來像兩個4.5和5.5都確切漂浮在Python 3.5表示:爲什麼在Python 3.5中輪換(4.5)== 4和round(5.5)== 6?
>>> from decimal import Decimal
>>> Decimal(4.5)
Decimal('4.5')
>>> Decimal(5.5)
Decimal('5.5')
如果是這樣的話,那麼爲什麼
>>> round(4.5)
4
>>> round(5.5)
6
?
看起來像兩個4.5和5.5都確切漂浮在Python 3.5表示:爲什麼在Python 3.5中輪換(4.5)== 4和round(5.5)== 6?
>>> from decimal import Decimal
>>> Decimal(4.5)
Decimal('4.5')
>>> Decimal(5.5)
Decimal('5.5')
如果是這樣的話,那麼爲什麼
>>> round(4.5)
4
>>> round(5.5)
6
?
在Python 3中,精確的中途數字四捨五入到最接近的偶數結果。這behavior changed in Python 3
round()
功能捨入策略和返回類型已更改。準確的中途情況現在被舍入到最接近的偶數結果,而不是從零開始。 (例如,round(2.5)現在返回2而不是3.)round(x [,n])現在委託給x。 輪([n]),而不是總是返回一個浮動。當用兩個參數調用時,它通常在用單個參數調用時返回一個整數,並且與x具有相同類型的值。
Python 3使用銀行家舍入,它將.5
的值舍入爲最接近的偶數。
銀行家四捨五入。你繞到最近的偶數 – 3Doubloons