DEV Community


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

Discussion (3)

Editor guide
mortoray profile image
edA‑qa mort‑ora‑y

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.

abdurrahmaanj profile image
Abdur-Rahmaan Janhangeer

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

itr13 profile image
Mikael Klages • Edited

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.