Hi there:

     I have found a strange issue on float number calculation in IDEL of Python 
2.7X。

     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). 
However, when I try to use print statement to print the result it gave me the 
right answer. That means the calculation in IDLE may be not the same with that 
in print statement for a script.The records can be found in attachment named 
P1_2.7.6.JPG and T1_2.7.6.

     2,I tried to update my Python to 2.7.11, the result is same as that in 
Python 2.7.6. The records can be found in attachment name P2_XXX and T2_XXX。

     3, Once again, I tried Python 3.5.1. The result is the same, but both of 
them was not accurate. I know the reason may be the same as I wrote in 
description 1. The good news is that the result keeps the same with each other.

     In summary of all above, I think that the calculation of float numbers in 
IDLE of Python 2.7X is not the same with the result of that in Print statement 
or that in a script.

     Thanks and regards!

     Grey from China, a beginner of Python.
Python 2.7.6 (default, Nov 10 2013, 19:24:18) [MSC v.1500 32 bit (Intel)] on 
win32
Type "copyright", "credits" or "license()" for more information.
>>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1
0.8999999999999999


>>> print(0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1)
0.9


>>> 
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec  5 2015, 20:32:19) [MSC v.1500 32 bit 
(Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1
0.8999999999999999
>>> print(0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1)
0.9


>>> 
Python 3.5.1 (v3.5.137a07cee5969, Dec  6 2015, 013848) [MSC v.1900 32 bit 
(Intel)] on win32
Type copyright, credits or license() for more information.
 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1
0.8999999999999999
 print(0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1 + 0.1)
0.8999999999999999
_______________________________________________
IDLE-dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/idle-dev

Reply via email to