為什麼除法舍入為整數
在 Python 中,整數之間的除法會得到一個整數。這種行為可能會令人驚訝,尤其是在嘗試標準化或調整數值範圍時。
為了說明這一點,讓我們考慮以下程式碼:
(20-10) / (100-10) == 0
人們可能會期望此表達式計算為表示0.111 的浮點值,因為20 和10 之間的差是10,而100 和10 之間的差是90。但是,結果是 0因為除法兩邊都是整數。
這種行為是由於 Python 的整數除法造成的,它會截斷結果而不是四捨五入。由於 0.111 小於 0.5,因此向下舍入為 0。
要獲得預期結果,必須手動將除法的任一側轉換為浮點數:
(20-10) / float((100-10)) # == 0.111
或者,一個可以啟用Python 3.x 的行為,透過導入 future 強制除法傳回浮點數模組:
from __future__ import division (10 - 20) / (100 - 10) # == -0.111
以上是為什麼 Python 中的整數除法會截斷而不是捨入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!