如何打印出√2的100位小数?

1 投票
1 回答
2372 浏览
提问于 2025-04-18 10:45

我试过很多方法,但就是不知道怎么打印出平方根2的小数点后100位。使用decimal.Decimal好像被计算本身给影响了。有没有什么好主意?

import decimal
import math

decimal.getcontext().dps = 100   #arbitrary

print(decimal.Decimal(math.sqrt(2)))

1 个回答

4

math.sqrt(2) 这个函数会返回一个 浮点数 的值,但这个浮点数的精度不够,无法满足你的要求。你可以使用 Decimal.sqrt() 来代替:

>>> from decimal import Decimal, localcontext
>>> with localcontext() as ctx:
...     ctx.prec = 100
...     Decimal(2).sqrt()
... 
Decimal('1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573')

撰写回答