Java JScience:如何打印整个实数?
我写了一些测试代码,它可以计算出我想要计算的Pi值。它看起来像这样:Java JScience:如何打印整个实数?,java,jscience,Java,Jscience,我写了一些测试代码,它可以计算出我想要计算的Pi值。它看起来像这样: public static void piCalculatorMethod1() { int iteration = 1000000; Real pi = Real.valueOf(0); for (int i = 1; i < iteration + 1; i++) { Real current = pi; Real addendum = Real.value
public static void piCalculatorMethod1() {
int iteration = 1000000;
Real pi = Real.valueOf(0);
for (int i = 1; i < iteration + 1; i++) {
Real current = pi;
Real addendum = Real.valueOf((1/Math.pow(i, 2)));
pi = current.plus(addendum);
}
pi = pi.times(6);
pi = pi.sqrt();
System.out.println(pi.toString());
}
3.14159169866
我很确定最终值比这个精确得多,因为我已经看到了他们实际添加的值,这比这个精确得多
如何获取
System.out.println
以显示整个实数,而不仅仅是前几个数字?您可能需要质疑关于序列收敛性的假设。π的这种近似依赖于欧拉解。根据经验,下面的例子发现了许多迭代计数与π2/6的偏差。如您所见,迭代计数中的每个数量级添加的精度不超过一个小数位数
代码:
Real PI_SQUARED_OVER_6=Real.valueOf(Math.pow(Math.PI,2)/6);
对于(int p=0;p<7;p++){
int迭代=(int)Math.pow(10,p);
实际pi=实际值(0);
对于(int i=1;i
控制台:
10^0: 6.44934066848226E-1
10^1: 9.5166335681686E-2
10^2: 9.950166663334E-3
10^3: 9.99500166667E-4
10^4: 9.9995000167E-5
10^5: 9.999950000E-6
10^6: 9.99999500E-7
10^0:6.44934066848226E-1
10^1:9.5166335681686E-2
10^2:9.950166663334E-3
10^3:9.99500166667E-4
10^4:9.9995000167E-5
10^5:9.999950000E-6
10^6:9.9999500E-7
10^0: 6.44934066848226E-1
10^1: 9.5166335681686E-2
10^2: 9.950166663334E-3
10^3: 9.99500166667E-4
10^4: 9.9995000167E-5
10^5: 9.999950000E-6
10^6: 9.99999500E-7