2015-10-14 4 views
-7

Распечатайте таблицу десятичных эквивалентов всех собственных дробей с знаменателями от 2 до 14 включительно с числителем, меньшим знаменателя. Радиус десятичной до 5 мест.[Java] - Что не так с этим кодом?

import java.text.*; 
public class Decimal 
{ 
    public static void main(String[] arg) 
    { 
     int d; 
     int n=1; 
     float Sum; 
     DecimalFormat Form = new DecimalFormat("0.00000"); 
     for(d=2;d<=14;d++) 
     { 
      do 
      { 


       Sum= n/d; 
       System.out.println(n+"/"+d+" "+Form.format(Sum));// Problem here I assume,why is the sum always Zero????!! 
          n++;  
      }while(n!=d); 
      n=1; 


     } 

    } 
} 

image

+1

хорошо, если вы не объясните, что это ** предполагается ** делать и что он на самом деле делает, это всего лишь случайный фрагмент кода. Догадайтесь, но вы пытаетесь разделить 1 (тип 'int') на' int', который всегда будет иметь значение 0 – Paul

+0

Распечатайте таблицу десятичных эквивалентов всех собственных дробей с знаменателями от 2 до 14 включительно с числителем меньше знаменателя. Радиус десятичной до 5 мест. – Basam

+1

, тогда это довольно просто: используйте '1.0/d' вместо' 1/d', а результат будет 'double' вместо' int'. 'int', деленный на' int', всегда будет иметь целое число, поэтому дробные цифры просто усекаются, всегда оставляя вас с 0 в вашем случае – Paul

ответ

0

Вы делением ИНТ на межд; результатом является целое число. Чтобы получить правильный результат, вы должны указать один из int для двойного типа данных.

Sum = (double)n/d; 
Смежные вопросы