所以这是我正在使用的代码的一部分,我们应该首先修复一些逻辑错误,因为错误的答案。我发现了一些语法错误,这些错误也不会让编译器完成......我对fToC一直保持“0”......
//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。谢谢。
答案 0 :(得分:2)
您正在使用5/9
执行Java的整数除法,这必须产生另一个整数 - 0
,因此结果为0
。使用double
文字来强制浮点数学。
fToC = (5.0/9.0) * (BOILING_IN_F - 32);
您需要fToC
成为double
(并将拼写错误string output
更改为String output
)。
答案 1 :(得分:1)
(5/9)
为0。试试(5.0/9)
完整的表达应该是:
fToC = (5.0/9) * (BOILING_IN_F - 32);
答案 2 :(得分:1)
(5/9)
你正在潜水两个整数,所以这是截断的,所以它等于0.你将那个0与另一个数相乘。
改为使用(5.0f/9.0f)
来确定您的号码实际上是十进制数。