【问题标题】:python float precision issue [duplicate]python浮点精度问题[重复]
【发布时间】:2013-12-24 08:06:12
【问题描述】:

遇到python(2.7.3)一个奇怪的浮点数问题。

In [4]: 17 * 0.1
Out[4]: 1.7000000000000002

但是

In [5]: print(17*0.1)
1.7

两个问题:

  1. 为什么17*0.11.7000000000000002
  2. 为什么print 没问题?

【问题讨论】:

  • 1. IEEE-754 浮点规则。 2. IEEE-754 浮点规则。 3. 考虑two's complement
  • print很好。它只是显示数字较少的数字,以提供更好、更直观的表示。您通常不在乎数字是否有 10^-16 左右的错误。如果您想控制显示的位数而不是使用格式字符串:print('{.Nf}'.format(17*0.1))。更改 N 以更改要显示的位数。

标签: python-2.7 floating-point


【解决方案1】:

这里有一个很好的解释:

http://docs.python.org/2/tutorial/floatingpoint.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-09-16
    • 2011-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多