Question

# [Solved] Python: OverflowError: math range error

I get a Overflow error when i try this calculation, but i cant figure out why.

``````1-math.exp(-4*1000000*-0.0641515994108)
``````

## Solution #1:

The number you’re asking math.exp to calculate has, in decimal, over 110,000 digits. That’s slightly outside of the range of a double, so it causes an overflow.

## Solution #2:

To fix it use:

``````try:
ans = math.exp(200000)
except OverflowError:
ans = float('inf')
``````

## Solution #3:

I think the value gets too large to fit into a `double` in python which is why you get the `OverflowError`. The largest value I can compute the `exp` of on my machine in Python is just sligthly larger than 709.78271.

## Solution #4:

This may give you a clue why:

``````http://www.wolframalpha.com/input/?i=math.exp%28-4*1000000*-0.0641515994108%29
``````

Notice the 111442 exponent.

## Solution #5:

Unfortunately, no one explained what the real solution was. I solved the problem using:

from mpmath import *

You can find the documentation below:

http://mpmath.org/

## Solution #6:

Try np.exp() instead of math.exp()

Numpy handles overflows more gracefully, np.exp(999) results in inf
and 1. / (1. + np.exp(999)) therefore simply results in zero

``````import math
import numpy as np

print(1-np.exp(-4*1000000*-0.0641515994108))
``````

The answers/resolutions are collected from stackoverflow, are licensed under cc by-sa 2.5 , cc by-sa 3.0 and cc by-sa 4.0 .
To Top
India and Pakistan’s steroid-soaked rhetoric over Kashmir will come back to haunt them both clenbuterol australia bossier man pleads guilty for leadership role in anabolic steriod distribution conspiracy