我正在尝试使用以下公式计算圆周率: 圆周率/4 = 1 - 1/3 + 1/5 - 1/7 + 1/9 ...
public class Calculator
{
double process=1;
double piValue=0;
int approximation;
double value;
public Calculator( int precision)
{
approximation = precision;
}
public void calculate()
{
while(process<=approximation)
{
value = 1/(process+2);
if(process%2==0)
{
value = value;
}
else
{
value = value * (-1);
}
piValue = piValue + value;
process++;
}
System.out.println((1+piValue)*4.0);
}
}
我看这里没什么问题,但我一直得到非常无意义的输出结果。下面是一些例子:
23. step: 3.1490100018286853 This is OK.
1501. step: 3.22874239242146
100,000 step: 3.2274312772602247
当"步数"无限增大时,它的极限大约是3.22。我该如何解决这个问题?
请注意,我刚刚开始学习Java。
提前致谢。
1/(process * 2 - 1)
而不是1/(process + 2)
。 - Alex Salauyouprocess
只被增加了一次,而不是两次。 - Alex Salauyou