这个问题需要使用大数算法才能解决。以下是一个例子:

import java.math.BigDecimal;

public class Pi {

    public static void main(String[] args) {
        BigDecimal pi = new BigDecimal(0);
        BigDecimal one = new BigDecimal(1);
        int scale = 10000;
        for (int i = 0; i < scale; i++) {
            BigDecimal numerator = new BigDecimal(1);
            numerator = numerator.setScale(scale * 2, BigDecimal.ROUND_HALF_UP);
            BigDecimal denominator = new BigDecimal(2).multiply(new BigDecimal(i)).add(new BigDecimal(1));
            denominator = denominator.setScale(scale * 2, BigDecimal.ROUND_HALF_UP);
            BigDecimal term = numerator.divide(denominator, scale * 2, BigDecimal.ROUND_HALF_UP);
            if (i % 2 == 0) {
                pi = pi.add(term);
            } else {
                pi = pi.subtract(term);
            }
        }
        pi = pi.multiply(new BigDecimal(4));
        pi = pi.setScale(scale, BigDecimal.ROUND_HALF_UP);
        System.out.println(pi);
    }

}

这段代码使用了Leibniz公式来计算π。它使用BigDecimal类来处理大数。BigDecimal.setScale()方法用于设置小数点后的位数。该代码将小数点后的位数设置为10000,并将结果输出到控制台。


原文地址: https://www.cveoy.top/t/topic/lZpR 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录