平方根的任意精度

Ran*_*lue 20 python math

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)

  • +1表示如何更改精度.我正在删除我自己的答案,赞成这个. (12认同)

won*_*ng2 7

你可以试试bigfloat.项目页面中的示例:

from bigfloat import *
sqrt(2, precision(100))  # compute sqrt(2) with 100 bits of precision
Run Code Online (Sandbox Code Playgroud)

  • @ wong2:我想你错过了笑脸.Mark Dickinson是bigfloat的作者. (7认同)
  • 嘎.我讨厌那个图书馆.:-) (5认同)