2017-05-25 73 views
0

我想總結浮點數的列表。列表中沒有重複的小數,但結果是重複的小數。什麼原因以及如何預防? (Python版本:2.7.11)python - 浮點數的總和導致重複小數點

例如,

a=[1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.1] 
sum(a) 

結果

7.699999999999999 

謝謝。

+0

這是因爲電腦有位數量有限。他們通常會四捨五入,但您可以使用循環功能。 –

+0

您也可以使用回合功能。 –

+0

謝謝,但是當使用循環函數時,我必須爲每個情況決定小數位數。 – user2583253

回答

0

您可以使用numpy的爲您計算如下代碼:

import numpy 

a=[1.1, 1.1, 1.1, 1.1, 1.1, 1.1, 1.1] 
print(numpy.sum(a)) 
+0

爲什麼我在這裏倒下了? 這是正確的解決方案 – Gahan

+0

是的,爲什麼downvote? –

+1

謝謝,它的作品! – user2583253

0

這是二進制浮點的本質。您可以閱讀更多信息here

注意:您始終可以使用%.f作爲精度。即%.1f你的情況

+0

謝謝您的參考。 – user2583253