This question already has answers here:
Fahrenheit to Celsius conversion yields only 0.0 and -0.0
                                
                                    (5个答案)
                                
                        
                        
                            Division on the fly [duplicate]
                                
                                    (3个答案)
                                
                        
                6年前关闭。
            
        

我正在用Java开发一个简单的温度转换程序,该程序将华氏温度转换为摄氏温度。我的程序可以正常编译,但是无论我输入什么数字,它始终表示摄氏0.0!我可能做错了什么?这是我的完整代码:

import javax.swing.JOptionPane;

public class FahrenheitToCelsius {

public static void main(String[] args) {

    double fahrenheit, celsius;

    String input = JOptionPane.showInputDialog("Please enter the temperature in Fahrenheit:");

    fahrenheit = Double.parseDouble(input.trim());

    celsius = (5 / 9) * (fahrenheit - 32);

    JOptionPane.showMessageDialog(null, "The temperature is " + celsius + " degrees celsius.");

    }

}

最佳答案

这是因为(5/9)= 0。

5和9都是ints,并且int除法在这里将得出0(5/9 = 0.555 ...,它不能是int,因此被截断为0)。使用双精度(5.0 / 9.0),就不会出现此问题。

07-24 09:49