我发现了一个解决方案,通过使用BBS算法来计算Pi的数量。但是我遇到了一个问题。如果使用双变量,我缺少一个精度。有没有解决它的建议?如何在Java中使用big double numbers?
这里是我的代码:
public class Pi {
public static void main(String[] args) {
int n = 5;
for (int k = 0; k < n; k++) {
int a0 = (int) Math.pow(16, k);
double a1 = (double) 4/(8 * k + 1);
double a2 = (double) 2/(8 * k + 4);
double a3 = (double) 1/(8 * k + 5);
double a4 = (double) 1/(8 * k + 6);
double a5 = a1 - a2 - a3 - a4;
double a6 = (double) 1/a0;
double elem = a5 * a6;
System.out.println(new BigDecimal(elem));
}
}
}
你已经标记了你的问题'bigdecimal'。你试过了吗? – EJP