Python: OverflowError: ошибка математического диапазона - PullRequest
23 голосов
/ 29 октября 2010

Я получаю ошибку переполнения при попытке выполнить этот расчет, но не могу понять, почему.

Ответы [ 4 ]

20 голосов
/ 29 октября 2010

Число, которое вы просите math.exp для вычисления, имеет в десятичном виде более 110 000 цифр.Это немного выходит за пределы диапазона двойного, поэтому вызывает переполнение.

17 голосов
/ 02 мая 2016

Для исправления используйте:

try:
    ans = math.exp(200000)
except OverflowError:
    ans = float('inf')
4 голосов
/ 29 октября 2010

Я думаю, что значение становится слишком большим, чтобы вписаться в double в python, поэтому вы получаете OverflowError.Наибольшее значение, которое я могу вычислить exp на моей машине в Python, чуть больше 709,78271.

3 голосов
/ 29 октября 2010

Это может дать вам понять, почему:

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

Обратите внимание на показатель 111442.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...