C# 使用BigInteger时使用Math.Sqrt()?

C# 使用BigInteger时使用Math.Sqrt()?,c#,math,math.sqrt,C#,Math,Math.sqrt,我需要进行Math.Sqrt计算,但它必须支持非常大的数字,所以我尝试使用biginger但Math.Sqrt不支持它们 还有其他选择吗?我如何计算,结果是双倍的 样本: sqrt 5 = 2,2360679774997896964091736687313 sqrt 4789798765456456456 = xxxxx,xxxxxxxxxxx norm. 最简单的方法可能是从双精度初始猜测开始运行 要加快速度,请注意牛顿的方法在每次迭代中都会使其精度加倍。通过跟踪int32“指数”和Big

我需要进行
Math.Sqrt
计算,但它必须支持非常大的数字,所以我尝试使用
biginger
Math.Sqrt
不支持它们

还有其他选择吗?我如何计算,结果是双倍的

样本:

sqrt 5 = 2,2360679774997896964091736687313 
sqrt 4789798765456456456 = xxxxx,xxxxxxxxxxx norm.

最简单的方法可能是从双精度初始猜测开始运行


要加快速度,请注意牛顿的方法在每次迭代中都会使其精度加倍。通过跟踪int32“指数”和
BigInteger
尾数,您也可以在每次迭代中加倍精度,每一步将“尾数”的精度增加两倍,直到达到足够的精度。

double
d=Math.Sqrt(3);这没有什么意义。你首先要写一个BigDouble类,这样你才能表示结果。“真的大”有多大
double
s的价格已经相当高了,你可以使用这样一个事实:Log(Sqrt(x))=Log(x)/2。但是,请使用BigDecimal.BigInteger.pow(0.55,x)是否可能重复?