2014-09-03 103 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需要。