On 2021-09-02, Hope Rouselle <hrouse...@jevedi.com> wrote: > Suppose these numbers are prices in dollar, never going beyond cents. > Would it be safe to multiply each one of them by 100 and therefore work > with cents only?
The _practical_ answer is that no, it's not safe to use floating point when doing normal bookeeping type stuff with money. At least not if you want everything to balance correctly at the end of the day (week, month, quarter, year or etc.). Use integer cents, or mills or whatever. If you have to use floating point to calculate a payment or credit/debit amount, always round or truncate the result back to an integer value in your chosen units before actually using that amount for anything. In theory, decimal floating point should be usable, but I've never personally worked with it. Back in the day (1980's) microcomputers didn't have floating point hardware, and many compilers allowed you to choose between base-2 floating point and base-10 (BCD) floating point. The idea was that if you were doing financial stuff, you could use BCD floating point. -- Grant -- https://mail.python.org/mailman/listinfo/python-list