У меня есть функция, которая возвращает log10 значений. При преобразовании их в нормальные числа я получаю ошибку переполнения.Сила десятичного числа, производящего OverflowError
OverflowError: (34, 'Numerical result out of range')
Я проверил значение журналов и эта ошибка возникает для скажу, +508,038057662.
Я считаю, что в то время как python легко выполняет 10 ** 509, эта ошибка должна быть вызвана переполнением регистра. Поэтому я попытался использовать numpy.float64, например,
result = np.array([ (10**multiplicity(timeseries,om,ph,bins,pos_arr)) for ph in np.linspace(0,twopi,num = bins+1)], dtype = np.float64)
Ошибка такая же. Я объявляю float64 неправильным?
Здесь множественность() - это функция, которая возвращает log10 значения. Мне нужен «список» значений.
Хорошо .... 10^509 is> 2^64 ... или я пропущу что-то очевидное здесь? –
'10 ** 509 = 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000L' с помощью Python – Mellkor
Да, но ответ-эр ниже говорит, что это типа 'long', а не типа' float64'. Вы заметите, что, возможно, неудивительно, что этот тип данных может содержать только до 64 бит. –