我如何在python中显示100个小数位的无理数?

时间:2011-01-19 08:32:16

标签: python math decimal-point

我试图找到2到100个小数位的平方根,但默认情况下它只显示为10,我该怎么改变呢?

4 个答案:

答案 0 :(得分:32)

decimal模块派上用场。

>>> from decimal import *
>>> getcontext().prec = 100
>>> Decimal(2).sqrt()
Decimal('1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573')

答案 1 :(得分:7)

您可以将decimal模块用于任意精度数字:

import decimal

d2 = decimal.Decimal(2)

# Add a context with an arbitrary precision of 100
dot100 = decimal.Context(prec=100)

print d2.sqrt(dot100)

如果您需要与速度相同的能力,还有其他一些选择:[gmpy],2cdecimal

答案 2 :(得分:1)

您可以使用gmpy2

import gmpy2
ctx = gmpy2.get_context()
ctx.precision = 300
print(gmpy2.sqrt(2))

答案 3 :(得分:0)

You can use sympy and evalf()

from sympy import sqrt
print(sqrt(2).evalf(101))