簡體   English   中英

自動將int轉換為float

[英]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)

在這里,最初的valint類型的,但是在循環中,盡管我正在執行整數除法運算,但是它被轉換為float 為什么會這樣呢?

您必須使用: //

val = (val * (m + i)) // (i)

而且您的val將仍然是整數

/的行為已通過以下方式更改: https : //www.python.org/dev/peps/pep-0238/

operator模塊文檔還給出了有關true division (返回浮點數)和floor division之間的分隔的提示, floor division返回地板,因此返回int

https://docs.python.org/3/library/operator.html

它在PEP 238 真語義划分”中指定:

intlong進行真除法會將參數轉換為float ,然后應用float除法。 也就是說,即使2/1也將返回float2.0 ),而不是int 對於floatcomplex ,它將與經典除法相同。

因此,當找到一個int時,將執行自動轉換。 請注意,這是Python 3中的默認行為。在python 2中,您需要從__future__ import ,以獲得相似的結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM