Я создал простую функцию, чтобы решить e на степень пи, объясненную здесь
def e_to_power_pi(number):
return (1 + (1/number)) ** (number * math.pi)
, на первый взгляд, явно простой кусок кода. Но посмотрите на разницу между этими двумя значениями:
Пример первый:
e_to_power_pi(1000000000000000)
вывод:
32.71613881872869
Пример два:
e_to_power_pi(10000000000000000)
вывод:
1.0
после разрыва кода, я узнал, что 1.0 идет из этой части 1 + (1 / число) кода выше.
Когда я продолжил его, я узнал, что 1/10000000000000000
выводит правильный ответ, как и должно быть 0.00000000000000001
.
Но когда я добавляю 1
к результату, он возвращает 1.0
вместо из 1.00000000000000001
.
Я предположил, что это должно быть округление по умолчанию в python, которое может изменять значение.
Я решил использовать round(<float>, 64) # where <float> is any computation taking place in code above
, чтобы попытаться получить 64 знака после запятой. Но все же я застрял с тем же результатом, когда было выполнено сложение, то есть 1.0
.
Может ли кто-нибудь направить меня или указать мне направление, в котором я могу узнать или дополнительно прочитать об этом?