2013-12-15 4 views
0

Я пробовал это в 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 через некоторое время, поэтому я забыл свои правильные имена переменных.

ответ

2

заменить 1 от 1.0D, что приведет к double

+0

Суффикс 'D' является необязательным для' double'. –

+0

только для того, чтобы сделать его читаемым –

+0

Мне нужно, чтобы это было точнее, но, по крайней мере, число сейчас подходит. Благодарю. – user2962770

0

попробовать этот

public static void main (String args[]) { 

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

OUTPUT: 0,5 0,3333333333333333 0,25 0,2 0.16666666666666666 0.14285714285714285 0,125 . . . .

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()); 
    } 
} 
+0

BigDecimal была переменной, которую я искал, http://ideone.com/7FBtUL Я попробовал на IDEone, и это не сработало ... – user2962770

+0

Это 'java.math.BigDecimal' и' java.math.MathContext'. –

+0

О, спасибо, я скопировал и вставлял ... не знаю, почему он их не выбрал. – user2962770

4

Так как 1 и i представляют собой целые числа, используется целочисленное деление. Либо 1, либо i должны быть двойными в разделе 1/i вашего кода, чтобы целочисленное деление не использовалось. Вы можете сделать что-то вроде 1.0/i или 1/((double) i), чтобы вместо этого использовалось разделение float.

+0

@ пользователь2962770, это ответ на ваш вопрос? – stiemannkj1

Смежные вопросы