4 ms·
Sigh The representation means that 2.9999999999 = 3.00000000 I am not confused. You cannot use equality in floating point. Why is anybody surprised by that?
by worik 6y ago
Sigh
The representation means that 2.9999999999 = 3.00000000
I am not confused. You cannot use equality in floating point. Why is anybody surprised by that? That is my point
(I did say floating point before when I ment real. A bit confused!)
- slavik81 6y ago> You cannot use equality in floating point. Sure you can. 1.0 + 2.0 == 3.0. There's a lot of gotchas, but it is possible to make useful comparisons.
- worik 6y agoNo it does not, no it is not possible to use equality comparisons usefully in FP arithmetic
- slavik81 6y agoIf that were true, they wouldn't have defined the equality operators for floating point types. Some numbers are exactly representable and some numbers are not [1]. It's difficult, but you can in fact reason about the exact results of floating point calculations. https://news.ycombinator.com/item?id=1847462 https://news.ycombinator.com/item?id=1847462
- caf 6y agoDon't sigh melodramatically at me. I wasn't saying you were confused, I was saying I believe I understand how the general confusion around the whole issue arises. (If decimal floating point had been commonly used instead of binary, the same class of issues would still exist, but I don't think people would be nearly so surprised by them).