21xrx.com
2024-12-23 00:14:49 Monday
登录
文章检索 我的文章 写文章
Java输出Pi的正确方法
2023-06-15 13:49:46 深夜i     --     --
Java

在使用Java编程语言时,输出圆周率(即pi)的值是一个基本任务。然而,由于pi是一个无理数,因此必须采取一些特殊的方法才能输出正确的值。下面介绍三种Java输出pi的方法。

方法一:使用Math类

Math类是Java中一个被广泛使用的包,其中包括常见数学函数和常量。Pi是Math类中的一个常量,有一个固定的值3.141592653589793。可以直接调用Math类输出它。

代码:


public class PrintPiUsingMathClass {

  public static void main(String[] args) {

    System.out.println("Pi = " + Math.PI);

  }

}

方法二:手写程序

手写程序的目的是为了在实现输出Pi的同时,更好地理解其含义。可以使用以下公式计算Pi的值:

![pi公式](https://i.imgur.com/2Jj7OlL.png)

代码:


public class PrintPiUsingSelfWrittenProgram {

  public static void main(String[] args) {

    double pi = 0;

    for(int i=1; i<=100000; i++) {

      pi += 1.0/(2*i-1)*(i%2==1?1:-1);

    }

    pi *= 4;

    System.out.println("Pi = " + pi);

  }

}

方法三:使用BigDecimal类

BigDecimal类可以以任意精度表示一个数,通过指定位数来输出Pi。以下代码演示了如何使用BigDecimal类输出20位精度的Pi值。

代码:


import java.math.BigDecimal;

public class PrintPiUsingBigDecimal {

  public static void main(String[] args) {

    BigDecimal pi = new BigDecimal("3");

    BigDecimal divisor = new BigDecimal("2");

    boolean flag = false;

    for(int i=2; i<=100000; i+=2) {

      BigDecimal tmp = new BigDecimal(String.valueOf(4.0/(i*(i+1)*(i+2))));

      if(flag) {

        pi = pi.add(tmp);

      } else {

        pi = pi.subtract(tmp);

      }

      divisor = divisor.add(new BigDecimal("2"));

      flag = !flag;

    }

    pi = pi.multiply(new BigDecimal("2")).add(new BigDecimal("3"));

    System.out.println("Pi = " + pi);

  }

}

三种方法均可以输出Pi,但它们的原理和实现方式不同。传统的方法是使用Math.PI常量,另一种是手写程序,第三种则使用了BigDecimal类。

输出pi, Math, BigDecimal, 精度计算.

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复