-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