Re: OverflowError: Python int too large to convert to C long

To solve OverflowError: math range error in Python, fit the data within the maximum limit. We must use different data types to store the value if this data cannot be fitted. When the data limit is exceeded, then it is called the overflow.

import math

ans = math.exp(1)

print(ans)

Output

2.718281828459045

The output is printed as 2.718281828459045. This program is used for calculating the exponential value.

import math

ans = math.exp(900)

print(ans)

Output

OverflowError: math range error

It raises an error called the OverFlowError because the exponential value would have exceeded the data type limit.

To solve OverflowError programmatically, use the if-else statement in Python. We can create an if condition for checking if the value is lesser than 100. If the value is less than 100, it will produce an exponential value. And in the else block, we can keep a print statement like the value is too large for calculating the exponentials.

import math

num = 2000

if(num < 100):

ans = math.exp(num)

print(ans)

else:

print("The value is too large, Please check the value")

Output

The value is too large, Please check the value

Using the if-else statement, we can prevent the code from raising an OverflowError. 100 is not the end limit. It can calculate around 700, but running takes a lot of memory.

One more way to solve this problem is by using try and except block. Then, we can calculate the exponent value inside the try block. Then, the exponent value is displayed if the value is less than the data limit.

If the value exceeds the limit, then except block is executed. OverflowError class name can be used to catch OverflowError.

import math

val = int(input("Enter a number: "))

try:

ans = math.exp(val)

print(ans)

except OverflowError:

print("Overflow Error has occurred !")

Output

Enter a number: 1000

Overflow Error has occurred !

In this program, if we give a value less than 700 or 500, this program works well and generates the output. However, if the value is equal to or greater than 1000, the error message will be displayed as output. We used the try and except block to solve this OverflowError.