On Wed, Sep 1, 2021 at 10:23 AM Steven D'Aprano <st...@pearwood.info> wrote: > What doesn't work, for some definition of "doesn't", is everything > else about floats: addition, subtraction, multiplication, conversion > from decimal, etc. But *equality* is one of the few operations that > works exactly. >
Really, the only thing that BADLY doesn't work is conversion from decimal. All the others are accurate to within the available precision. The problem with binary floating point isn't equality; it's that humans assume that 0.1 is a precise value. We don't expect 0.33333 to be a precise representation of one third, yet we expect a computer to be able to store one tenth with perfect accuracy. That's where ALL the problems come from. In the classic demonstration that 0.1 + 0.2 != 0.3, the problem isn't equality, it's that none of those values is what you think it is. If I told you that 33/100 + 66/100 != 100/100, nobody would bat an eyelid. ChrisA _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/WR5TGCMY37LF2F7SXWTQLXHWPII35Y5K/ Code of Conduct: http://python.org/psf/codeofconduct/