有人能解釋我爲什麼下面的代碼行爲像它一樣嗎? (這是Python的在Windows7的64位命令行)Python奇怪的操作?
>>>2.22 + 0.22
2.44000000000000004
>>>(222+22)/100
2.44
有人能解釋我爲什麼下面的代碼行爲像它一樣嗎? (這是Python的在Windows7的64位命令行)Python奇怪的操作?
>>>2.22 + 0.22
2.44000000000000004
>>>(222+22)/100
2.44
所有浮點運算,是這樣的,它基於IEEE標準。
A downvote but no comments ,我該如何改進? – Kos
浮點操作在percision中受到限制,而在python中,這些限制是有據可查的。你可以閱讀它here
這是由於數據格式。
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
您要添加的數目是浮動格式。這意味着它有小數位。數學的第二行數字都是整數,所以它們在整數的形式。已知浮球形式在執行數學方程時會拋出錯誤。
閱讀下面的語句:[每個計算機科學家應該知道的關於浮點算術](http://docs.oracle.com/cd/E19957-01/806-3568/ncg_goldberg.html) –