I had always imagined that the str founction did some kind of rounding on floats to prevent small numerical errors from showing up. The 2.7 documentation starts like this

class str(object='')
Return a string containing a nicely printable representation of an object. For s



However, I see a difference in the behaviour of python3.3, 3.4 & 3.5 when compared to python 2.7.

C:\Users\rptlab>\python33\python.exe -c"print(str(3*0.2))"
0.6000000000000001

C:\Users\rptlab>\python34\python.exe -c"print(str(3*0.2))"
0.6000000000000001

C:\Users\rptlab>\python35\python.exe -c"print(str(3*0.2))"
0.6000000000000001

C:\Users\rptlab>\python27\python.exe -c"print(str(3*0.2))"
0.6

I suppose I am being naive and should use the round function when computing tick labels, but that leads to other issues.

Is there a sensible way to take a set of floats and find a suitable format to show significant figures for all, but leave off the noise?
--
Robin Becker

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to