#๐Ÿ”’ Why does 1 + 10**(-20) - 1 = 0

23 messages ยท Page 1 of 1 (latest)

weary canyon
#

Hello I got a question why does 1 + 10**(-20) - 1 = 0 in Python?
When I print 1 + 10**(-20), the output is 1.
Couldn't find an answer on google or rather I don't know where to start looking.

limber kayakBOT
#

@weary canyon

Python help channel opened

Remember to:

  • Ask your Python question, not if you can ask or if there's an expert who can help.
  • Show a code sample as text (rather than a screenshot) and the error message, if you've got one.
  • Explain what you expect to happen and what actually happens.

:warning: Do not pip install anything that isn't related to your question, especially if asked to over DMs.

rocky flicker
#

!e print(10**-20)

limber kayakBOT
rocky flicker
#

or maybe not

#

!e print(1 + 10**-20 - 1)

limber kayakBOT
rocky flicker
#

yeah probably because it's negligible

#

!e print(1 - 1 + 10**-20)

limber kayakBOT
weary canyon
#

Huh interesting

rocky flicker
#

!e print(1 + 10**-20)

limber kayakBOT
weary canyon
#

!e print(1 * 10**-20)

limber kayakBOT
rocky flicker
#

yeah i know

wheat lily
#

floats have greater precision the closer to 0 they are, so it makes sense for 1e-20 to be representable but also for 1+ 1e-20 to not be representable

weary canyon
#

Ah thanks!

limber kayakBOT
#
Python help channel closed

This help channel has been closed and it's no longer possible to send messages here. If your question wasn't answered, feel free to create a new post in #1035199133436354600. To maximize your chances of getting a response, check out this guide on asking good questions.

#

๐Ÿ”’ Why does 1 + 10**(-20) - 1 = 0