python會自動取整嗎?
在2.x版本都是這樣,會自動取整。 在3.x版本以上改了,結果保留浮點數。系統本身設計就這樣的。可以認為是開發python語言的開發者們任性,所以就這樣了 附:pyhton中除法的余數 v2.2 以前,除(“/”)運算符的返回有兩種可能情況,分別是整型和浮點型。操作數的不同,是影響計算結果數據類型的關鍵。 以 a / b 為例,a、b均為整型,則結果返回整型;a、b任意一個是浮點型的話,則結果就是浮點型。 =========================== # python v2.7 >>> 3 / 2, 3.0 / 2, 3.0 / 2.0 (1, 1.5, 1.5) =========================== 在某些場合,我們可能會期待 a / b 返回浮點型,可是由于某些不確定的因素,參與運算的 a 和 b都是整型,這可能會帶來錯誤,顯然有精度上的損失。 v2.2 以后,引入了“地板除”(“//”)運算符,從數值上講,它返回小于除法運算結果的最大整數;從類型上講,與"/"運算符返回類型邏輯一致。 而“/”運算符,沒有變化。 =========================== # python v2.7 >>> 3 / 2, 3.0 / 2, 3 // 2, 3.0 // 2 (1, 1.5, 1, 1.0) =========================== v3.x 以后,“/”運算符被命名為“真除”,不再依據操作數類型選擇返回值類型,保證計算結果數值上的精度是第一位的。所以,無須再把操作數轉變成浮點型,以保證運算結果不被截斷小數部分。 “//”運算符,不變。 =========================== # python v3.2 >>> 3 / 2, 3.0 / 2, 3 // 2, 3.0 // 2 (1.5, 1.5, 1, 1.0) ===========================