[Idle-dev] Bug Report on float number calculation in IDLE
Terry Reedy
tjreedy at udel.edu
Sat Feb 6 14:50:53 EST 2016
On 12/19/2015 5:20 AM, Grey wrote:
> I have found a strange issue on float number calculation in IDEL
> of Python 2.7X。
IDLE does not run you code. As far as running code goes, IDLE is an
input-output front-end run by Python. It displays what Python outputs.
If you had run the same code in Python directly, you would have seen the
same result.
>>> num = .1 + .1 + .1 + .1 +.1 +.1 + .1 + .1 + .1
>>> num
0.8999999999999999
>>> print(num)
0.9
Interactive echo (>>> num) prints repr(num), which is as accurate as
possible. Print prints str(num), which in 2.7 is rounded to a 'nice'
form. Because this was confusing, it was changed in 3.0.
>>> repr(num)
'0.8999999999999999'
>>> str(num)
'0.9'
> 1,When I tried to calculate the sum of a bunch of float numbers
> in IDLE of Python 2.7.6 I found that the result was not
> accurate(well, I have knew that it is up to the storage format of
> data by searching the information on Internet).
Issues of round-off error with floats are well documented. I believe
there is an entry in the Python FAQ for this.
Summary: no bug, and nothing to do with IDLE
--
Terry Jan Reedy
More information about the IDLE-dev
mailing list