This question already has answers here:
Why does the division of two integers return 0.0 in Java? [duplicate]
                                
                                    (6个答案)
                                
                        
                                4年前关闭。
            
                    
因此,这是我正在使用的代码的一部分,我们只能从纠正错误答案引起的一些逻辑错误开始。我还发现了一些语法错误,这些错误不会让编译器完成...我不断为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之外。谢谢。

最佳答案

您正在用5/9执行Java的整数除法,这必须导致另一个整数-0,因此结果为0。使用double文字强制执行浮点数学运算。

fToC = (5.0/9.0) * (BOILING_IN_F - 32);


您需要将fToC设置为double(并将拼写错误string output更改为String output)。

09-17 02:25