2017-06-21 61 views
1

據我所知,整數除法運算符//保證返回一個整數。不過,雖然2 // 1 == 1,我也得到了2.0 // 1 == 2.0。爲什麼python不生成一個整數,並且將輸出強制轉換爲int總是安全的?爲什麼整數除法返回浮點數?

回答

4

您誤解了操作員。它是一個地板分區運算符,不是整數除法運算符。

對於浮點輸入,它仍然會返回浮點浮點值。

Binary arithmetic operations section

/(除法)和//(地板除法)運算得到的它們的參數的商。數字參數首先被轉換爲通用類型。整數除法產生一個浮點數,而整數的整數除法結果爲一個整數;結果是應用於結果的「底線」函數的數學分割。

地板的結果可以安全地轉換爲整數。