Java Double Division返回0; 数学检查IRL

Der*_*der 0 java

我正在编写一个非常简单的Fahrenheit到Celsius转换程序,该程序采用命名常量并通过简单计算(常量 - 32)*(5/9)将其转换为摄氏温度

无论出于什么原因,每当我运行这个程序时,它都会返回0.0为Celcius.数学在现实生活中检查,答案是100,但无论出于何种原因,我从程序中得到0.0.这是代码:

final double BOILING_IN_F = 212; // Boiling temperature
double fToC;                     // Temperature Celsius
fToC = (BOILING_IN_F - 32) * (5/9);
output = BOILING_IN_F + " in Fahrenheit is " + fToC + " in Celsius.";
System.out.println(output);
Run Code Online (Sandbox Code Playgroud)

我知道在分割整数时,任何小数都将作为一个整体返回,这就是我将变量改为double的原因.即便如此,它还是返回0.我还尝试使用float作为我的数据类型,并在添加(不相关)括号时切换计算.

Car*_*ate 6

5/9求值为0,因为0.5555555556舍入为0为0,这是因为您使用的是整数除法.将其中一个整数更改为浮点数:

5 / 9.0
Run Code Online (Sandbox Code Playgroud)

如果两个数字都是整数,则使用整数除法来截断结果.其中一个操作数必须是非整数才能使用非整数除法.