在python3中,整數除法與python 2.7.3不同。有沒有辦法確保除法後沒有餘數的數字作爲整型返回,而除數之後有餘數的數作爲浮點返回?Python3分區:當沒有餘數時返回int,當有餘數時返回float。
我希望能夠檢查:
if (instanceof(x/n, int)):
# do something
下在python3發生:
>>> 4/2
2.0
>>> 5/2
2.5
有一些方法,使分裂的行爲也是這樣嗎?
>>> 4/2
2
>>> 5/2
2.5
我很想知道一個解決方案,假設浮點除法將可靠地產生精確的結果,即使數學邏輯應該。浮點錯誤是這樣的邏輯混亂的東西。 'int'數學在Python中是無損的,'float'數學是有損的,所以如果你需要可靠的結果,你需要首先使用'int'數學,而'float'作爲後備。 – ShadowRanger
'r =(10 ** 20 + 1)/ 2'就是失敗的一個例子。 – user2357112
的確如此。我考慮過那些不太可能失敗的情況,比如問題中的問題。 – cgarciahdez