计算圆周率
PI=4-4/3+4/5-4/7.......
打印出第一个大于3.1415 小于3.1416 的值这个题我当时还真没做出来...
小数处理不好,比较不了...

解决方案 »

  1.   

    public class PI {
        public static void main(String args[]){
            PI pi = new PI();
            System.out.println(pi.calculate(3.1416, 3.1415));
        }
        private double calculate(double max,double min){//要求返回值大于min,小于max.
            double quarterOfResult=0;
            double result=0;
            int count =1;//计数位
            int signal =1;//符号位
            while(result<min||result>max){
                double countDou=count;//把int转换成doulbe为了除法运算
                quarterOfResult = quarterOfResult + signal/countDou;
                count = count + 2;
                signal = signal * (-1);
                result = 4 * quarterOfResult;
            }
            return result;
        }}
    结果是这个:3.1415000095284658
    不知道楼主满意吗?
      

  2.   

    代码 如下:
    import java.lang.Math;
    public class TestPi{
    public static void main(String[] args){
    double PI=0.0;;
    double i;
    //double k=4.0;
    for(i=1;i<=100000;i++){
    double j=Math.pow((-1),(i-1));
      PI+=(j*4)/(2*i-1);
      
      }
    System.out.println(PI);
    }
    }
    这个不知道是不是第一个 但代码是正确的
      

  3.   

    import javax.swing.JOptionPane;public class TestPI{
      public static void main(String[] args){
     
        String IString=JOptionPane.showInputDialog(null,"Enter I:");
        int I=Integer.parseInt(IString);
       
        double sum=0,sum_1=0;
        for(int i=1;i<=I;i++)
          sum+=Math.pow(-1,i-1)*(double)1/(2*i-1);
          sum_1=sum*4;
        System.out.print("PI的值为:"+sum_1);
    }
    }其实第一个大于3.1415 小于3.1416 的值,这个值我还真没怎么看懂
    3.1415926 3.14156295   到底谁是第一个 我是没搞清