找出pi的值直到50位数 [英] find the value of pi till 50 digits

查看:53
本文介绍了找出pi的值直到50位数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要计算50位数之前的PI值.

I want to calculate the value of PI till 50 digits.

如何在Java中做到小数点后50位?

How to do this in java for 50 decimal places?

推荐答案

public class PiReCalc {
  public static final int N = 1000; // # of terms
   public static void main(String[] args) {
  BigDecimal sum = new BigDecimal(0);      // final sum
  BigDecimal term = new BigDecimal(0);           // term without sign
  BigDecimal sign = new BigDecimal(1.0);     // sign on each term

  BigDecimal one = new BigDecimal(1.0);
  BigDecimal two = new BigDecimal(2.0);

  for (int k = 0; k < N; k++) {
     BigDecimal count = new BigDecimal(k); 
     //term = 1.0/(2.0*k + 1.0);
     BigDecimal temp1 = two.multiply(count);
     BigDecimal temp2 = temp1.add(one);
     term = one.divide(temp2,50,BigDecimal.ROUND_FLOOR);

     //sum = sum + sign*term;
     BigDecimal temp3 = sign.multiply(term);
     sum = sum.add(temp3);

     sign = sign.negate();
  }
  BigDecimal pi = new BigDecimal(0);
  BigDecimal four = new BigDecimal(4);
  pi = sum.multiply(four);

  System.out.println("Calculated pi (approx., " + N + " terms and 50 Decimal Places): " + pi);
  System.out.println("Actual pi: " + Math.PI);
   }
}

输出为

计算出的pi(大约1000个条件和50个小数位):3.14059265383979292596359650286939597045138933077984
实际pi:3.141592653589793

这篇关于找出pi的值直到50位数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆