Java 计算圆周率到小数点后 10000 位
这个问题需要使用大数算法才能解决。以下是一个例子:
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 著作权归作者所有。请勿转载和采集!