Python浮点数表示

时间:2011-04-22 09:54:28

标签: python floating-point

  

可能重复:
  Floating Point Limitations

你好,

也许这有一个非常简单的答案。我正在玩Python解释器。

>>> 1
1
>>> 1.1
1.1000000000000001
>>> 1.2
1.2

为什么1.1被解释为1.1000000000000001

3 个答案:

答案 0 :(得分:1)

这是由于数字在内部存储的方式。格式在IEEE_754-2008 speficiation中指定。

可以在单精度浮点here

上找到更多信息

答案 1 :(得分:1)

来自The Floating-Point Guide:

  

为什么我的数字,如0.1 + 0.2加起来不是很好的一轮0.3,而且   相反,我得到一个奇怪的结果,如   0.30000000000000004吗

     

因为在内部,计算机使用a   格式(二进制浮点)   无法准确表示一个数字   像0.1,0.2或0.3一样。

     

编译代码时   解释,你的“0.1”已经存在   四舍五入到最接近的数字   格式,这导致一个小的   甚至在之前的舍入错误   计算发生了。

答案 2 :(得分:0)

您可以查看here浮点运算问题和限制

在python 3的任何情况下,你都有:

>>> 1
1
>>> 1.1
1.1
>>> 1.2
1.2
>>>