On Tue, Apr 15, 2014 at 1:18 PM, Phil Dobbin <phildob...@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 -- https://mail.python.org/mailman/listinfo/python-list