Simple question

Zachary Ware zachary.ware+pylist at gmail.com
Tue Apr 15 14:25:41 EDT 2014


On Tue, Apr 15, 2014 at 1:18 PM, Phil Dobbin <phildobbin at gmail.com> wrote:
> Hi, all.
>
> I've just started to learn Python (I'm reading Mark Lutz's 'Learning
> Python' from O'Reilly) & I'm confused as to this part:
>
> '>>> 0.1 + 0.1 + 0.1 - 0.3
> 5.55111.....'
>
> Using 'import Decimal' you can get a much closer result i.e.
> 'Decimal('0.0')'
>
> What I'm wondering is why the first calculation that arrives at
> '5.55111...' is so far out?

First, note that the "..." part of "5.55111..." is very important
here, it's actually "5.55111...e-17" which means it's really
approximately 0.000000000000000055111, which is really very close to
the answer you'd expect from a human.  To learn more about why Python
doesn't give 0.0, read this:
https://docs.python.org/3/tutorial/floatingpoint.html

Hope this helps,
-- 
Zach



More information about the Python-list mailing list