回 帖 发 新 帖 刷新版面

主题:[讨论]求PI的值有问题?

编了一个程序如下:
class Pi{
public static void main(String[] args){
double sum=0;
double a;
double i=0;
do{
i++;
double count=Math.pow(-1,--i);
a=count*(1/2*i-1);
sum+=a;
double pi=4*sum;
}while(Math.abs(a)>0.0001);
System.out.println("PI is:"+sum);
}
}
javac Pi.java
可以生成Pi.class
但是java Pi时,它就死着不动了,类似于死机,
请问这是什么原因啊?

回复列表 (共2个回复)

沙发

因为 程序跳不出循环!

板凳

public class Pi {
    public static void main(String[] args) {
        double sum = 0;
        double a;
        double i = 0;
        
        int index = 0;
        
        do {
            
            i++;
            double count = Math.pow(-1, --i);
            a = count * (1 / 2 * i - 1);
            sum += a;
            double pi = 4 * sum;
            
            System.out.println("a : "+ a + ", i : "+ i + ", sum : "+sum);
            System.out.println("--------------");
            System.out.println("Math.abs(a) = "+ Math.abs(a));
            System.out.println();
            
            index++;
            
            if(index>5){
                break;
            }
            
            
        } while (Math.abs(a) > 0.0001);
        System.out.println("PI is:" + sum);
    }

}


这样打印出来看一下你就知道为什么了.

我来回复

您尚未登录,请登录后再回复。点此登录或注册