-1
我正在构建一系列实践小程序。我正在构建一个Pi计算器来练习数字。但是,当我运行该程序时,结果为零。没有错误被抛出。更可能的答案是显而易见的,我最终将我的头撞在墙上。Pi计算器输出0
import java.math.BigDecimal;
public class FindPi {
public static void main(String[] args) {
BigDecimal answer = new BigDecimal(0);
BigDecimal counts = new BigDecimal(5);
BigDecimal two = new BigDecimal(2);
for (BigDecimal k = new BigDecimal(0); k.compareTo(counts) <= 0; k = k.add(BigDecimal.ONE)) {
BigDecimal a = k.add(BigDecimal.ONE);
BigDecimal b = factorial(BigDecimal.ONE.add(k.multiply(two)));
BigDecimal d = a.divide(b, 10, BigDecimal.ROUND_DOWN);
answer = answer.add(d);
}
System.out.println(answer);
}
public static BigDecimal factorial(BigDecimal n) {
BigDecimal fact = new BigDecimal(1);
for (BigDecimal x = n; x.compareTo(BigDecimal.ONE) > 0; x = x.subtract(BigDecimal.ONE)) {
fact = fact.multiply(x);
}
return fact;
}
}
这是启动调试器并逐步完成代码的正确时间。 – Alexander 2014-09-03 21:33:55
刚跑过一个。这里是控制台:听javadebug 用户程序运行 用户程序完成 – CaffeineToCode 2014-09-03 21:36:19
我认为我在做迭代使用BigDecimal错误 – CaffeineToCode 2014-09-03 21:37:15