this post was submitted on 26 Jul 2025
139 points (97.9% liked)
Software Gore
1181 readers
1 users here now
A community for posting software malfunctions
Deliberately bad software or bad design is not software gore, it must be something unintentional
Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient and shear it
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
f64
is perfectly precise.Lol ok.
If only we had this thing called rounding...
Double is not perfectly precise. It is quite literally a function that calculates what the value should be. There are converters to show the drift: https://www.h-schmidt.net/FloatConverter/IEEE754.html
$40.01
is literally stored as01000010001000000000101000111101
in a float type, which is literally stored as40.009998321533203125
. The margin of error goes up the larger the number.Either you're just trolling, or incredibly arrogant. I have been coding in the FinTech space for over a decade and can tell you firsthand that these are real issues, and have real consequences.
But hey, don't take my word for it:
There have been some famous disasters thanks to floating point math
As for rounding, I can't even think of a way to describe what a terrible idea that is. I'd suggest reading those articles and asking the stock exchange why they don't "just round it" when dealing with millions of transactions that deal with fractions of pennies. "Just round it"
re your last point: or just watch Superman III.
or office space!
No you're fundamentally misunderstanding what's going on. Float isn't "storing 40.01 but imprecisely". That's like saying an integer "stores 1.1 but imprecisely". Floating point can't represent the number 40.01. But that doesn't matter because 4.0009999999999998 is easily accurate enough for any real world use.
This was caused by converting an
f64
toi16
which caused an overflow and hardware exception. Irrelevant.Hardware bug. Irrelevant.
Literally says "The failure to intercept arose not from using floating point specifically"
I'm not talking about stock exchanges. Obviously they have extreme requirements. For most normal businesses and people
f64
is fine.You're repeating dogma without thinking about it.
Have you seen office space?