Le 19/11/2021 à 21:17, Chris Angelico a écrit :
On Sat, Nov 20, 2021 at 5:08 AM ast <ast@invalid> wrote:

Le 19/11/2021 à 03:51, MRAB a écrit :
On 2021-11-19 02:40, 2qdxy4rzwzuui...@potatochowder.com wrote:
On 2021-11-18 at 23:16:32 -0300,
René Silva Valdés <rene.silva.val...@gmail.com> wrote:



  >>> 0.3 + 0.3 + 0.3 == 0.9
False

That's because 0.3 is not 3/10. It's not because floats are
"unreliable" or "inaccurate". It's because the ones you're entering
are not what you think they are.

When will people understand this?

(Probably never. Sigh.)

ChrisA


I posted that to make people aware of danger of float comparison,
not because I was not understanding what happened.

We can see there is a difference on the lsb, due to rounding.

>>> (0.3+0.3+0.3).hex()
'0x1.cccccccccccccp-1'
>>> 0.9.hex()
'0x1.ccccccccccccdp-1'
>>>

An isclose() function is provided in module math to do float
comparison safely.

>>> math.isclose(0.3+0.3+0.3, 0.9)
True
--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to