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!我可能做错了什么?这是我的完整代码:
(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