Так что это часть кода, который я использую, мы должны были только начать с исправления некоторых логических ошибок из-за неправильных ответов. Я нашел пару синтаксических ошибок, которые не позволили компилятору закончить... Я продолжаю получать "0" для fToC...
//declaration statements
final int BOILING_IN_F = 212;
int fToC;
string output;
//there is other code between that has nothing
//to do with outputting the boiling point.
fToC = (5/9) * (BOILING_IN_F - 32);
output = BOILING_IN_F + " in Fahrenheit is " + fToC
+ " in Celsius.";
System.out.println(output); //this is outputting 0 for fToC
System.out.println();
Ответы были полезными, за исключением того, что мне нужно было объявить fToC как double перед компиляцией и запуском программы. Спасибо.
Вы выполняете целочисленное деление Java с 5/9
, что должно привести к другому целому числу - 0
, поэтому результат равен 0
. Используйте double
литералы, чтобы заставить математику с плавающей запятой.
fToC = (5.0/9.0) * (BOILING_IN_F - 32);
Вам нужно, чтобы fToC
был double
(и изменил string output
typo для string output
String output
).
(5/9)
равен 0 из-за деления. Попробуйте (5.0/9)
Полное выражение должно быть:
fToC = (5.0/9) * (BOILING_IN_F - 32);
(5/9)
Вы погружаетесь в два целых числа, так что это усечено, поэтому оно равно 0. И вы умножаете это 0 на другое число.
Используйте вместо этого (5.0f/9.0f)
чтобы уточнить тот факт, что ваш номер фактически является десятичным числом.