Python is DOOMED! Again!
Steven D'Aprano
steve+comp.lang.python at pearwood.info
Mon Jan 26 19:22:39 EST 2015
BartC wrote:
> how do you represent a raise of 10% exactly if
> not with binary floating point?
In Python today, the best solution is probably to use Decimals:
from decimal import Decimal
raise = Decimal("0.1")
But the traditional solution is to track money in cents, or a fixed fraction
of a cent, using integers, and do everything in integer maths. That has the
disadvantage that division always truncates, but if you care about that you
can easily write your own division-with-round-to-nearest function.
Or use Decimal, which handles rounding correctly and flexibly.
--
Steven
More information about the Python-list
mailing list