1
據我所知,整數除法運算符//
保證返回一個整數。不過,雖然2 // 1 == 1
,我也得到了2.0 // 1 == 2.0
。爲什麼python不生成一個整數,並且將輸出強制轉換爲int
總是安全的?爲什麼整數除法返回浮點數?
據我所知,整數除法運算符//
保證返回一個整數。不過,雖然2 // 1 == 1
,我也得到了2.0 // 1 == 2.0
。爲什麼python不生成一個整數,並且將輸出強制轉換爲int
總是安全的?爲什麼整數除法返回浮點數?
您誤解了操作員。它是一個地板分區運算符,不是整數除法運算符。
對於浮點輸入,它仍然會返回浮點浮點值。
從Binary arithmetic operations section:
的
/
(除法)和//
(地板除法)運算得到的它們的參數的商。數字參數首先被轉換爲通用類型。整數除法產生一個浮點數,而整數的整數除法結果爲一個整數;結果是應用於結果的「底線」函數的數學分割。
地板的結果可以安全地轉換爲整數。