如何在Python中显示一个无理数的100位小数?

16 投票
4 回答
15440 浏览
提问于 2025-04-16 10:13

我想计算2的平方根,并且希望结果能显示到100位小数,但默认情况下只显示大约10位。请问我该怎么做才能改变这个设置呢?

4 个回答

2

你可以使用 gmpy2 这个库。

import gmpy2
ctx = gmpy2.get_context()
ctx.precision = 300
print(gmpy2.sqrt(2))
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

35

在编程中,decimal 模块非常有用。

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

撰写回答