我尝试了各种技术,但我无法弄清楚如何打印出sqrt(2)的100位小数。 decimal.Decimal似乎被计算本身抵消了。有什么想法吗?
import decimal
import math
decimal.getcontext().dps = 100 #arbitrary
print(decimal.Decimal(math.sqrt(2)))
答案 0 :(得分:2)
math.sqrt(2)
会返回 float 值,该值不支持您要求的精度。请改用Decimal.sqrt()
:
>>> from decimal import Decimal, localcontext
>>> with localcontext() as ctx:
... ctx.prec = 100
... Decimal(2).sqrt()
...
Decimal('1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573')