我目前正在用Python做一些事情,並且在分配變量時出現一些奇怪的行爲。例如,我設置「A」到0.1的IPython的控制檯:在Python中賦值變量 - 奇怪的行爲
In [1]: a = 0.1
然後我打印:
In [2]: a
Out[2]: 0.10000000000000001
In [3]: a == 0.1
Out[3]: True
In [4]: a == 0.10000000000000001
Out[4]: True
好吧,也許這是因爲數字的有限表示(最後1在第16位)。但是:
In [17]: 1 == 0.10000000000000001
Out[17]: False
我必須被這個嚇到嗎?因爲我是 ! ;-)
*「也許是因爲數字的有限表示的」 *是的!哪個宇宙應該是'1 == 0.10000000000000001'(因此'1 == 0.1)是真的? –
請參閱[this](http://stackoverflow.com/questions/10481156/double-or-float-datatype-doesnt-addup-properly-in-a-loop)問題。 –
這裏有什麼問題? –