Mark Dickinson wrote:
> Now that we've got the short float repr in Python, there's less value
> in having float.__str__ truncate to 12 significant digits (as it
> currently does).  For Python 3.2, I propose making float.__str__ use
> the same algorithm as float.__repr__ for its output (and similarly for
> complex).
> 
> Apart from simplifying the internals a little bit, one nice feature of
> this change is that it removes the differences in formatting between
> printing a float and printing a container of floats:
> 
> >>> l = [1/3, 1/5, 1/7]
> >>> print(l)
> [0.3333333333333333, 0.2, 0.14285714285714285]
> >>> print(l[0], l[1], l[2])
> 0.333333333333 0.2 0.142857142857
> 
> Any thoughts or comments on this?
> 
> There's a working patch at http://bugs.python.org/issue9337

Python 2.5.4 (r254:67916, Jan 20 2010, 21:44:03) 
>>> float("0.142857142857") * 7
0.99999999999899991
>>> float("0.14285714285714285") * 7
1.0

I've made a number of tools in the past that needed to round-trip a
float through a string and back. I was under the impression that floats
needed 17 decimal digits to avoid losing precision. How does one do that
efficiently if neither str nor repr return 17 digits?


Robert Brewer
[email protected]
_______________________________________________
Python-Dev mailing list
[email protected]
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to