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
[–] FizzyOrange@programming.dev 1 points 6 days ago* (last edited 6 days ago)

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 as 01000010001000000000101000111101 in a float type, which is literally stored as 40.009998321533203125. The margin of error goes up the larger the number.

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.

The story of Ariane 5

This was caused by converting an f64 to i16 which caused an overflow and hardware exception. Irrelevant.

How a Minor Calculation Error Cost Intel Half a Billion Dollars

Hardware bug. Irrelevant.

Wikipedia

Literally says "The failure to intercept arose not from using floating point specifically"

and asking the stock exchange

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.