首頁 >後端開發 >Python教學 >為什麼 Python 中的整數除法會截斷而不是捨入?

為什麼 Python 中的整數除法會截斷而不是捨入?

Linda Hamilton
Linda Hamilton原創
2024-12-19 19:07:10437瀏覽

Why Does Integer Division in Python Truncate Instead of Rounding?

為什麼除法舍入為整數

在 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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn