I have to admit: If you (semi-)regularly use floating point comparisons in programming, I don’t know why you would ever expect 0.1 + 0.2 == 0.3 to return true. It’s common practice to check abs(a - b) < tol, where tol is some small number, to the point that common unit-testing libraries have built-in methods like assertEqual(a, b, tol) specifically for checking whether floats are “equal”.
Yeah, a lot of editors throw warnings for using the equals operator with floats by default, as far as I know it’s considered bad practice to do it that way.
Then most people shouldn’t be writing code, I don’t know what else to tell you, this is probably one of the first thing you learn about FP arithmetic, and any decent compiler/linter should warn you about that.
I don’t think that’s how most programmers expect it to work at all.
However most people would also expect 0.1+0.2==0.3 to return true, so what do I know.
Floating point is something most of us ignore until it bites us in the ass. And then we never trust it again.
I have to admit: If you (semi-)regularly use floating point comparisons in programming, I don’t know why you would ever expect 0.1 + 0.2 == 0.3 to return true. It’s common practice to check
abs(a - b) < tol
, wheretol
is some small number, to the point that common unit-testing libraries have built-in methods likeassertEqual(a, b, tol)
specifically for checking whether floats are “equal”.Yeah, a lot of editors throw warnings for using the equals operator with floats by default, as far as I know it’s considered bad practice to do it that way.
Thats why i recon its good to keep u aware of it. Mind u i find its often fine as long as my ide and chagpt know what type it is im usually fine.
I do kinda like the rigidity of types tho. Proper Python type hints are a godsend.
Then most people shouldn’t be writing code, I don’t know what else to tell you, this is probably one of the first thing you learn about FP arithmetic, and any decent compiler/linter should warn you about that.