我目前正在用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)问题。 –
这里有什么问题? –