2014-09-03 102 views
-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; 
    } 
} 
+5

這是啓動調試器並逐步完成代碼的正確時間。 – Alexander 2014-09-03 21:33:55

+0

剛跑過一個。這裏是控制檯:聽javadebug 用戶程序運行 用戶程序完成 – CaffeineToCode 2014-09-03 21:36:19

+0

我認爲我在做迭代使用BigDecimal錯誤 – CaffeineToCode 2014-09-03 21:37:15

回答

1

原來,問題是我的IDE,不是我的代碼,在eclipse不知道爲什麼它不工作運行它,但我認爲現在是時候說再見Netbeans需要。