decimal.Decimal(math.sqrt(2))屈服时我很失望
Decimal('1.4142135623730951454746218587388284504413604736328125')
Run Code Online (Sandbox Code Playgroud)
并且小数点后15位的数字错误.(尽管很乐意给你超过15位数!)
如何在Python 的十进制扩展中获得第一个m 正确的数字sqrt(n)?
Nic*_*ood 50
sqrt在Decimal上使用方法
>>> from decimal import *
>>> getcontext().prec = 100
>>> Decimal(2).sqrt()
Decimal('1.414213562373095048801688724209698078569671875376948073176679737990732478462107038850387534327641573')
>>>
Run Code Online (Sandbox Code Playgroud)
你可以试试bigfloat.项目页面中的示例:
from bigfloat import *
sqrt(2, precision(100)) # compute sqrt(2) with 100 bits of precision
Run Code Online (Sandbox Code Playgroud)