2016-02-26 38 views
0

在Python(3.4.3): 怎麼會在下面X代碼爲3.5 ...,y是100應該不是X爲0爲什麼modulo不能在python中使用小數?

weight = 356 
weight2 = 3.56 
x = weight%weight2 
y = weight/weight2 
print(x) 
print(y) 

但在這個碼x確實= 0如預期的那樣:

weight = 35600 
weight2 = 356 
x = weight%weight2 
y = weight/weight2 
print(x) 
print(y) 

如果您有任何解釋,請回答並給出解決方法,如果您有一個! :)

+0

你可能想看看這個: http://stackoverflow.com/a/14763891/1377151 –

回答

0

這是因爲浮點運算不準確。在decimal模塊顯示的你的想法是3.56「真正的」價值:

In[202] decimal.Decimal(3.56) 
Out[202]: Decimal('3.560000000000000053290705182007513940334320068359375') 

所以很多的四捨五入問題發生。

相關問題