Re: Print a float value

Stéphane Lozier

The rational number 7/3 cannot be expressed exactly using a float. The result of 7.0/3 is actually 2.333333333333333481363069950020872056484222412109375. So when you round to 17 significant digits you end up with the trailing 35. For more information on floating point numbers I suggest looking at


On Sun, Mar 22, 2020 at 11:01 AM Hailiang Shen <hailiang@...> wrote:

Thanks Stéphane. This clarified why the results were different. I was also wondering why the 2nd print outputs 2.3333333333333335, where the last digit is not 3 but 5.


From: <> On Behalf Of Stéphane Lozier
Sent: March 22, 2020 10:45 AM
Subject: Re: [ironpython] Print a float value


In the first case you're printing the float, in the second case you're printing a tuple of floats. In both cases the `__str__` function is called, however in the case of the tuple, `__str__` and `__repr__` are the same so it's like calling `__repr__` of each of its items.


>>> class test(object):
...   def __str__(self): return "__str__"
...   def __repr__(self): return "__repr__"
>>> print(test())
>>> print(test(), test())
(__repr__, __repr__)


Hope this makes sense.




On Sat, Mar 21, 2020 at 7:08 PM Hailiang Shen <hailiang@...> wrote:

Hello all, could anyone help me understand printing float values? E.g.


print (7.0/3) will output 2.33333333333

print (7/3.0, 7.0/3) will output (2.3333333333333335, 2.3333333333333335)


I am not sure why the outputs are slightly different.






Join to automatically receive all group messages.