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