如何打印出sqrt(2)的100位小数?

时间:2014-06-23 09:36:19

标签: python python-3.x

我尝试了各种技术,但我无法弄清楚如何打印出sqrt(2)的100位小数。 decimal.Decimal似乎被计算本身抵消了。有什么想法吗?

import decimal
import math

decimal.getcontext().dps = 100   #arbitrary

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

1 个答案:

答案 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')