2012-11-07 81 views
1

有人能解釋我爲什麼下面的代碼行爲像它一樣嗎? (這是Python的在Windows7的64位命令行)Python奇怪的操作?

>>>2.22 + 0.22 
2.44000000000000004 
>>>(222+22)/100 
2.44 
+5

閱讀下面的語句:[每個計算機科學家應該知道的關於浮點算術](http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) –

回答

3

所有浮點運算,是這樣的,它基於IEEE標準。

5

浮點操作在percision中受到限制,而在python中,這些限制是有據可查的。你可以閱讀它here

1

這是由於數據格式。

2.22 + 0.22 != 2.44 // both are float 
// when you use them to calculate, they are giving consistently "wrong" results 
// because the datatype in itself gets incorrect when moving into deep comma space 
(222+22)/100 // becomes this in calculation 
222+22 = 244 --> 244/100 = 2.44 
0

您要添加的數目是浮動格式。這意味着它有小數位。數學的第二行數字都是整數,所以它們在整數的形式。已知浮球形式在執行數學方程時會拋出錯誤。