Python Forum

Full Version: OverflowError: math range error
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Hi,
I am very new to Python, but have good php knowledge.
I need to save and print a big number. How can I do that?
Here is my code

import math
from decimal import Decimal
print(Decimal(math.pow(2, 1024)))
I m getting "OverflowError: math range error"
Thanks,
Nick
709.78271 is the largest value I can compute the exp of on my machine, I think the numpy module has the ability to handle large numbers
Got it.
Converted
math.pow(2, 1024)
to
2**1024
and it worked.

(Jul-26-2018, 08:51 PM)Vysero Wrote: [ -> ]709.78271 is the largest value I can compute the exp of on my machine, I think the numpy module has the ability to handle large numbers

Thanks fro the reply. How can I go about it using numpy module. I searched, but only found examples related to arrays.
If you are working with integers, you'll find that Python includes arbitrary precision integers. You generally want to avoid working with floats (what the math module generally does.) The following are useful for working with integers:

>>> b=100
>>> a+b
12445
>>> a-b
12245
>>> a*b
1234500
>>> a/b   # Floating point division in Python 3; varies in Python 2
123.45
>>> a//b  # Integer division; in both Python 2 and 3
123
>>> a % b # Remainder
45
>>> divmod(a,b) # Returns both Integer division and Remainder
(123, 45)
>>> 2 ** 5 # Exponentiation
32
While numpy is useful for many purposes, working with large numbers isn't its strong suit. Depending on what you want to do, you may want to use mpmath or gmpy2.

Disclaimer: I maintain gmpy2 when I have time.
Python can work with arbitrary big numbers. I don't know how it's doing that but I have used it to work with integers with few million digits.
Try gmpy2 for faster processing.