2017-02-05 4 views
-2

У меня возникли проблемы с дополнительными методами «public static double». Результаты, которые я получаю; для первого выхода, 1-10 в порядке возрастания. Два других результата, которые я получаю, - это десять результатов 0.0. Моя проблема не форматируется, и у меня нет сообщений об ошибках.Правильное использование дополнительных методов

Вот что я в настоящее время:

public static void main(String[] args) { 
    System.out.println("Sec\tMeters\tFeet "); 

    for (int t=1; t<=10; t+=1) { 
     System.out.print(t); 

     System.out.print("\t" + distanceFell(t)); 

     double conv = ((1/2) * 9.8 * ((t)*(t))); 
     System.out.println("\t" + metersToFeet(conv)); 
} 

}   

public static double distanceFell(int t) 
{ 
    double conv = ((1/2) * 9.8 * ((t)*(t))); 
    return (conv); 
} 

public static double metersToFeet (double conv) 
{ 
    double convFeet = (conv/0.3048); 
    return (convFeet);   
} 
} 
+3

Какие проблемы ** конкретно ** у вас есть? Преобразует ли он двойники в строки? Вы получаете сообщения об ошибках компилятора? ? Нарушать дисциплину Что-то другое? Чем более конкретный и ясный ваш вопрос, тем лучше ответы, которые вы увидите. –

+1

У вас нет переменной 'conv', которую вы хотите использовать в' meterToFeet() ' – QBrute

+0

. Я предполагаю, что одной из ваших проблем является форматирование вывода. Как минимум, вы, вероятно, захотите использовать 'System.out.print (...)' вместо 'System.out.println (...)' для первых двух выходов в цикле. А также напечатайте '' \ t "' между ними. –

ответ

0

Поскольку вы начинаете свое умножение с 1/2, это дает результат 0. Целочисленное подразделение сохраняет весь сегмент деления и выбрасывает остаток.

Таким образом, вы получаете 0 * 9.8 * t * t, что, как вы уже заметили, 0.0.

Вместо 1/2, вы должны попробовать 0.5. Это даст вам математику с плавающей запятой, которую вы после.

+0

Работает отлично! Я не знал, что целое подразделение выкидывает остаток, спасибо за ваше объяснение. –

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