[Python-Dev] Expert floats

Ka-Ping Yee python-dev at zesty.ca
Tue Mar 30 12:50:46 EST 2004


On Tue, Mar 30, 2004, Edward Loper wrote:
>
> But I'm not particularly happy about the fact that you have to be an
> expert to understand the intricacies of basic arithmetic with floats
> (not that I have a way to fix it).

On Tue, 30 Mar 2004, Aahz wrote:
>
> >>> 1.1
> 1.1000000000000001
>
> Just a fact of life.  :-/

I regret that this "feature" was ever introduced or "fixed" or what have
you.  Things were much better when repr(1.1) was "1.1" a few versions ago.

This inconsistency is strange and surprising to every Python learner and
I still believe there is no good reason for it.  The motivation, as i
remember it, was to make repr(x) produce a cross-platform representation
of x.  But no one uses repr() expecting bit-for-bit identity across
platforms.  repr() can't even represent most objects; if you want to
transfer things between platforms, you would use pickle.

If typing in "1.1" produces x, then "1.1" is a perfectly accurate
representation of x on the current platform.  And that is sufficient.

Showing "1.1000000000000001" is a clear case of confusing lots of people
in exchange for an obscure benefit to very few.  If i could vote for
just one thing to roll back about Python, this would be it.


-- ?!ng



More information about the Python-Dev mailing list