為什么這個部門在Python中不起作用?考慮:>>> numerator = 29>>> denom = 1009>>> print str(float(numerator/denom))
0.0如何讓它返回小數(shù)?
3 回答

牧羊人nacy
TA貢獻1862條經(jīng)驗 獲得超7個贊
在版本3之前,Python的除法運算符/在表示兩個整數(shù)參數(shù)時表現(xiàn)得像C的除法運算符:它返回一個整數(shù)結果,當存在小數(shù)部分時,它會被截斷。
>>> n = 29
>>> d = 1009
>>> print str(float(n)/d)
0.0287413280476
在Python 2(可能更早)中,您可以使用:
>>> from __future__ import division
>>> n/d
0.028741328047571853

jeck貓
TA貢獻1909條經(jīng)驗 獲得超7個贊
在Python 2.x中,除法與C語言類似:如果兩個參數(shù)都是整數(shù),則結果被截斷為整數(shù),因此浮點數(shù)為0.0時,29/1009為0。要修復它,在分割之前施放到浮子:
print str(float(numerator)/denominator)
在Python 3.x中,除法行為更自然,因此您將獲得正確的數(shù)學結果(在浮點錯誤內(nèi))。
添加回答
舉報
0/150
提交
取消