Bug in floating point multiplication
toddrjen at gmail.com
Thu Jul 2 17:13:31 CEST 2015
The loop runs to completion for me on openSUSE Tumbleweed and both Python
2.7 64bits and Python 3.4 64bits.
On Thu, Jul 2, 2015 at 4:52 PM, Steven D'Aprano <steve at pearwood.info> wrote:
> Despite the title, this is not one of the usual "Why can't Python do
> maths?" "bug" reports.
> Can anyone reproduce this behaviour? If so, please reply with the version
> Python and your operating system. Printing sys.version will probably do.
> x = 1 - 1/2**53
> assert x == 0.9999999999999999
> for i in range(1, 1000000):
> if int(i*x) == i:
> print(i); break
> Using Jython and IronPython, the loop runs to completion. That is the
> correct behaviour, or so I am lead to believe. Using Python 2.6, 2.7 and
> 3.3 on Centos and Debian, it prints 2049 and breaks. That should not
> happen. If you can reproduce that (for any value of i, not necessarily
> 2049), please reply.
> See also http://bugs.python.org/issue24546 for more details.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Python-list