运行结果出了问题但我找不到问题所在请看一下

运行结果出了问题,但我找不到我的问题所在,请看一下,非常感谢
运行结果

img

img

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
运算结束