как я могу измерить более 16 цифр после нуля с помощью python?

я хочу измерить около 1000 цифр после нуля числа, но я не знаю, что с ним делать, чтобы напечатать все числа, потому что он просто печатает первые 16 чисел, что мне делать, чтобы они все были напечатаны? я пытался изменить его на строку, но проблема в том, что это большое число состоит из большего числа, которое должно быть знаменателем, а другая проблема заключается в том, что это число является суммой итератора, и я не могу изменить его на строку на каждом шаге, который я пытался чтобы сделать его произведением 10, например, 10 ^ 10 или больше, но он не ответил, и он просто напечатал 17 чисел

это код:

S=0
for k in range(n+1):
    S+=((factorial(6*k))*(13591409+545140134*k))/((factorial(3*k))*((factorial(k))**3)*((-640320)**(3*k)))
X=((426880*((10005)**0.5))/S)
print(X)

person Reza Karami    schedule 17.11.2013    source источник
comment
эй. Это: . период. Он отделяет лексические группы, которые мы называем предложениями, друг от друга. Пожалуйста, используйте его.   -  person roippi    schedule 17.11.2013
comment
Числа с плавающей запятой Python используют представление IEEE 754, которое допускает 53 бита, что составляет 15-17 цифр, когда все сказано и сделано. Вероятно, вам понадобится гораздо большая библиотека чисел для выполнения этих вычислений.   -  person Joe    schedule 17.11.2013


Ответы (1)


Используйте модуль decimal:

>>> import decimal
>>> decimal.getcontext().prec = 100              #Set precision
>>> decimal.Decimal('22') / decimal.Decimal('7')  
Decimal('3.142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857142857143')
person Ashwini Chaudhary    schedule 17.11.2013
comment
Или, может быть, fractions, если все цифры рациональны и точные ответы действительно имеют значение. - person user2357112 supports Monica; 17.11.2013
comment
я пробовал дроби, но ответы были одинаковыми, он не отвечал правильно - person Reza Karami; 18.11.2013