[英]Automatic int to float conversion
m = 10
x = 5
val = 1
print(type(val))
for i in range(1, x+1):
val = (val * (m + i)) / (i)
print(type(val))
print(val)
在這里,最初的val
是int
類型的,但是在循環中,盡管我正在執行整數除法運算,但是它被轉換為float
。 為什么會這樣呢?
您必須使用: //
val = (val * (m + i)) // (i)
而且您的val將仍然是整數
/
的行為已通過以下方式更改: https : //www.python.org/dev/peps/pep-0238/
operator
模塊文檔還給出了有關true division
(返回浮點數)和floor division
之間的分隔的提示, floor division
返回地板,因此返回int
它在PEP 238
真語義划分”中指定:
將
int
和long
進行真除法會將參數轉換為float
,然后應用float
除法。 也就是說,即使2/1
也將返回float
(2.0
),而不是int
。 對於float
和complex
,它將與經典除法相同。
因此,當找到一個int
時,將執行自動轉換。 請注意,這是Python 3中的默認行為。在python 2中,您需要從__future__
import
,以獲得相似的結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.