4 hundred quadrillonth?
AggieDan04
danb_83 at yahoo.com
Thu May 21 21:56:08 EDT 2009
On May 21, 5:45 pm, norseman <norse... at hughes.net> wrote:
> seanm... at gmail.com wrote:
> > The explaination in my introductory Python book is not very
> > satisfying, and I am hoping someone can explain the following to me:
>
> >>>> 4 / 5.0
> > 0.80000000000000004
>
> > 4 / 5.0 is 0.8. No more, no less. So what's up with that 4 at the end.
> > It bothers me.
>
> ======================================
>
> Machine architecture, actual implementation of logic on the chip and
> what the compiler maker did all add up to creating rounding errors. I
> have read where python, if left to its own, will output everything it
> computed. I guess the idea is to show
> 1) python's accuracy and
> 2) what was left over
> so the picky people can have something to gnaw on.
If you want to be picky, the exact value is
0.8000000000000000444089209850062616169452667236328125 (i.e.,
3602879701896397/2**52). Python's repr function rounds numbers to 17
significant digits. This is the minimum that ensures that float(repr
(x)) == x for all x (using IEEE 754 double precision).
> Astrophysics, Astronomers and like kind may have wants of such.
> If you work much in finite math you may want to test the combo to see if
> it will allow the accuracy you need. Or do you need to change machines?
The error in this example is roughly equivalent to the width of a red
blood cell compared to the distance between Earth and the sun. There
are very few applications that need more accuracy than that.
More information about the Python-list
mailing list