為什么這個部門在Python中不起作用?考慮:>>> numerator = 29>>> denom = 1009>>> print str(float(numerator/denom))
0.0如何讓它返回小數?
3 回答
牧羊人nacy
TA貢獻1862條經驗 獲得超7個贊
在版本3之前,Python的除法運算符/在表示兩個整數參數時表現得像C的除法運算符:它返回一個整數結果,當存在小數部分時,它會被截斷。
>>> n = 29
>>> d = 1009
>>> print str(float(n)/d)
0.0287413280476
在Python 2(可能更早)中,您可以使用:
>>> from __future__ import division
>>> n/d
0.028741328047571853
jeck貓
TA貢獻1909條經驗 獲得超7個贊
在Python 2.x中,除法與C語言類似:如果兩個參數都是整數,則結果被截斷為整數,因此浮點數為0.0時,29/1009為0。要修復它,在分割之前施放到浮子:
print str(float(numerator)/denominator)
在Python 3.x中,除法行為更自然,因此您將獲得正確的數學結果(在浮點錯誤內)。
添加回答
舉報
0/150
提交
取消
