Другие ответы верны для печати с определенной точностью. Однако, если вы попробуете их с Decimal(math.pi)
, вы получите 3.141592653589793115997963468544185161590576171875
, очевидно, менее 100 цифр, и даже эти цифры не все верны. Причина этого в том, что math.pi
- это число с плавающей точкой, точность которого ограничена.
Чтобы фактически вычислить правильные цифры числа Пи с любой точностью, вы можете использовать этот код (взят из официальной документации Python для decimal
библиотеки ):
def pi():
"""Compute Pi to the current precision.
>>> print(pi())
3.141592653589793238462643383
"""
getcontext().prec += 2 # extra digits for intermediate steps
three = Decimal(3) # substitute "three=3.0" for regular floats
lasts, t, s, n, na, d, da = 0, three, 3, 1, 0, 0, 24
while s != lasts:
lasts = s
n, na = n+na, na+8
d, da = d+da, da+32
t = (t * n) / d
s += t
getcontext().prec -= 2
return +s # unary plus applies the new precision
Предполагается, что вы установили getcontext().prec
на требуемую точность.