Bug in floating point multiplication

Robin Becker robin at reportlab.com
Thu Jul 2 17:29:40 CEST 2015



$ uname -a
Linux everest 4.0.6-1-ARCH #1 SMP PREEMPT Tue Jun 23 14:40:31 CEST 2015 i686 
GNU/Linux
robin at everest:~
$ python2
Python 2.7.10 (default, May 26 2015, 04:28:58)
[GCC 5.1.0] on linux2
Type "help", "copyright", "credits" or "license" for more information.
 >>> x = 1.0 - 1.0/2**53
 >>> assert x == 0.9999999999999999
 >>> for i in range(1, 1000000):
...     if int(i*x) == i:
...         print(i); break
...
2049
 >>>
robin at everest:~
$ python
Python 3.4.3 (default, Mar 26 2015, 07:36:01)
[GCC 4.9.2 20150304 (prerelease)] on linux
Type "help", "copyright", "credits" or "license" for more information.
 >>>
KeyboardInterrupt
 >>> x = 1 - 1/2**53
 >>> assert x == 0.9999999999999999
 >>>  for i in range(1, 1000000):
   File "<stdin>", line 1
     for i in range(1, 1000000):
     ^
IndentationError: unexpected indent
 >>> for i in range(1, 1000000):
...     if int(i*x) == i:
...          print(i); break
...
2049
 >>>
robin at everest:~/devel/filps




-- 
Robin Becker


More information about the Python-list mailing list