对于循环,划分一个

时间:2013-12-15 06:24:25

标签: java for-loop division

我在Javascript中尝试了这个并且得到了我的答案,但我需要的答案必须更准确。我试图将1除以2到1000之间的每个数字,然后简单地打印它们。

public static void main(String [] args) {
    for (int i=2;i<=1000;i++){
        double g = (1/i);
        System.out.println(g); // print "1/1,2,3,4.....1000" 
    }
}

我有一段时间没有做过Java,所以我忘记了正确的变量名。

4 个答案:

答案 0 :(得分:4)

由于1i都是整数,因此使用整数除法。 1i在代码的1/i部分中需要加倍,以便不使用整数除法。您可以执行1.0/i1/((double) i)之类的操作,以确保使用浮点除法。

答案 1 :(得分:2)

1替换为1.0D <{1}}

答案 2 :(得分:0)

试试这个

public static void main ( String args[] )  {

            for (int i=2;i<=1000;i++){
                double g = (1.0/i);
                System.out.println("1/"+ig); 
            }

<强>输出: 0.5 0.3333333333333333 0.25 0.2 0.16666666666666666 0.14285714285714285 0.125 。 。 。

答案 3 :(得分:0)

我会使用BigDecimal做这样的事情(注意你可以有多少精度数字)。

public static void main(String[] args) {
  java.math.BigDecimal ONE = java.math.BigDecimal.ONE;
  // 50 digits of precision.
  java.math.MathContext mc = new java.math.MathContext(50);

  for (int i = 2; i <= 1000; i++) {
    java.math.BigDecimal divisor = new java.math.BigDecimal(i);
    java.math.BigDecimal result = ONE.divide(divisor, mc);
    result.round(mc);
    System.out.printf("%d/%d = %s\n", 1, i,
        result.toString());
  }
}