我的简单Java pi计算器似乎总是给出无穷大?

我的简单Java pi计算器似乎总是给出无穷大?,java,loops,iteration,pi,Java,Loops,Iteration,Pi,我正在为我的Java类编写这个简单的pi计算器,作为我们学习基本循环的一部分,看起来一切都很好,除了为pi打印的值是无穷大,而它应该是3.14…这取决于迭代次数。我读到这可能与一个双变量除以0有关,它给出了一个奇怪的无穷大输出,而不是一个普通的Java运行时异常 这是我的密码: package lab05; public class Lab05 { public static void main(String[] args) { // Variable declarati

我正在为我的Java类编写这个简单的pi计算器,作为我们学习基本循环的一部分,看起来一切都很好,除了为pi打印的值是无穷大,而它应该是3.14…这取决于迭代次数。我读到这可能与一个双变量除以0有关,它给出了一个奇怪的无穷大输出,而不是一个普通的Java运行时异常

这是我的密码:

package lab05;
public class Lab05 {
    public static void main(String[] args) {
        // Variable declarations
        double pie = 3;
        double savepie = 0;
        double term = 0;
        double savei = 0;
        double sign = 1;
        boolean isRangeFound = false;
        int i;
        // For loop
        for (i=0; i <= 1000;) { // Only up to 1000 iterations before loop must end.
            term = (sign * 4) / ((2*i) * (2*i+1) * (2*i+2));
            pie = pie + term;
            sign = (-1 * sign);
            if (isRangeFound==false && (pie >=3.14159265 & pie < 3.14159266)) {
                savepie = pie;
                savei = i;
                isRangeFound = true;
            }
            if (i == 200||i == 500||i == 1000) {
                System.out.print("The value of \u03C0 is: ");
                System.out.printf("%.10f",pie);
                System.out.print(" when i = " + i);
                System.out.println(" ");
            }
            i++;
        }
        // Final output statement
        System.out.println ("The number of iterations to get to 3.14159265 is " + savei + ".");
        System.out.printf("\n\u03C0 = %.10f",savepie);
        System.out.println(" ");
    } 
}
这是我应该遵循的说明的链接,以及我试图遵循的可视化逻辑流程图。谢谢。
当i=1时,您需要启动循环吗?按照你的理解,当i=0时,这个项将是无穷大(由于被零除),因此pie也将是无穷大。

答案就在你的问题本身。在第一次迭代中,您使用了零除法
term=(符号*4)/((2*i)*(2*i+1)*(2*i+2))
请注意:如果您怀疑有零除法,请在除法处放置断点,在调试器中运行代码,并查看那里发生了什么。调试是一项很有价值的技能,它将帮助您发现并解决许多问题。好的,当堆栈溢出允许时,我会在几分钟内接受它作为解决方案。我的印象是您必须将变量初始化为0。好的,这一切似乎都起作用了,谢谢。
The value of π is: Infinity when i = 200 
The value of π is: Infinity when i = 500 
The value of π is: Infinity when i = 1000 
The number of iterations to get to 3.14159265 is 0.0.

π = 0.0000000000 
BUILD SUCCESSFUL (total time: 0 seconds)