我需要使用该公式来计算PI与预定义的精度:计算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;
}
所以这个工作正确,但我面临的问题与效率。它的速度非常慢,精度值为8或更高。
是否有更好(更快!)的方式来计算PI使用该公式?
如果只执行一次,是否真的如此慢以至于有问题? – 2014-09-28 12:34:50
你是否想要计算一下你正在做的一些运动? 'Math.PI'返回3.14159265358979323846,然后您可以截取或舍入您想要的小数位数...... – 2014-09-28 12:37:39
尝试在'for'语句中使用'int'。我怀疑在那里使用双重减慢你的速度。 – Sopuli 2014-09-28 12:37:52