TIL:When n + 1 == n in python?

shaikhul profile image Shaikhul Islam ・1 min read

Today I was looking to python docs for doctest and found following

if n+1 == n:  # catch a value like 1e300
    raise OverflowError("n too large")

Immediately I opened the shell and try it:

>>> from math import exp
>>> n = exp(300)
>>> n
>>> n + 1 == n

TIL n+1 == n! and how to guard against a ridiculously large number


markdown guide

That's a fairly awful way to handle floating point limits. Much lower ranges should be checked if the algorithm is in danger of breaking.


If you need numbers that might get that high, maybe pure integer calculations would work.

There's also some arbitrary precision float modules you could use.


That's an oft-forgotten error when exposing to remote commands as it is too innocent.