运行结果出了问题,但我找不到我的问题所在,请看一下,非常感谢
运行结果
for循环中的初始条件,可以设置为第1项的值4/3,你这里定义的s相当于最终要求出的PI,条件判断应该是某一项(item)的值,而不是s(PI)
public static void main(String[] args) {
double x, y, pi, n = 1;
double item;
for (item = 2, x = 4, y = 3, pi = 2; item >= 1 + Math.pow(10, -6); n++, x = Math.pow(2 * n, 2), y = (2 * n - 1) * (2 * n + 1)) {
item = x / y;
pi *= item;
}
System.out.println(n);
System.out.println(pi);
System.out.println("运算结束");
}
输出结果如下,跳出循环的边界值越小,最终结果越精确
502.0
3.140026946105019
运算结束