this post was submitted on 25 Nov 2025
349 points (99.4% liked)
Programmer Humor
27690 readers
451 users here now
Welcome to Programmer Humor!
This is a place where you can post jokes, memes, humor, etc. related to programming!
For sharing awful code theres also Programming Horror.
Rules
- Keep content in english
- No advertisements
- Posts must be related to programming or programmer topics
founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Floats for currency in a payments platform.
The system will happily take a transaction for $121.765, and every so often there's a dispute because one report ran it through round() and another through floor().
Presumably every so often there's a dispute because 0 + (0.3 + 0.3 + 0.3) - 0.3 - 0.3 - 0.3 is not equal to 0 (in floating point arithmetic).
And not the easy way of using (long) integers to count the cents.
Lmao.
Using floats for nearly anything in a finance platform should be grounds for immediate dismissal.
Did either of those do banker's rounding?
Round is the safest way of using decimals for money as it corrects 10.499999999 (decimal fractions can't be stored precisely in floats as binary can't precisely represent all 2 digit decimals) to 10.50, where floor would take it to 10.49
It is safer to count in cents and have a policy to handle fractions of cents from divisions