.NET是否带有能够表示极大整数的类,例如100阶乘?如果没有,有什么好的第三方图书馆可以做到这一点?
有没有直接的方法从c#(或一般的.NET)中获取双尾数和指数?
我发现这个使用谷歌的例子,但我不确定它会有多强大.二进制表示可以在框架的某些未来版本中进行双重更改吗?
我发现的另一个替代方法是使用System.Decimal而不是double,并使用Decimal.GetBits()方法来提取它们.
有什么建议?
我需要使用以下公式以预定义的精度计算PI:

所以我最终得到了这个解决方案.
private static double CalculatePIWithPrecision(int presicion)
{
if (presicion == 0)
{
return PI_ZERO_PRECISION;
}
double sum = 0;
double numberOfSumElements = Math.Pow(10, presicion + 2);
for (double i = 1; i < numberOfSumElements; i++)
{
sum += 1 / (i * i);
}
double pi = Math.Sqrt(sum * 6);
return pi;
}
Run Code Online (Sandbox Code Playgroud)
所以这是正确的,但我遇到了效率问题.精度值为8或更高时,它非常慢.
是否有更好(更快!)的方法来使用该公式计算PI?