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

时间:2018-01-23 18:38:14

标签: java

我正在写一个非常简单的Fahrenheit到Celsius转换程序,它接受一个命名常量并通过简单的(constant-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);

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

3 个答案:

答案 0 :(得分:6)

5/9计算结果为0,因为0.5555555556向0舍入为0,这是因为您使用的是整数除法。将其中一个整数更改为浮点数:

5 / 9.0

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

答案 1 :(得分:1)

替换

{p} 5/95.0/9.0。这将确保您获得适当的分工。 5/9 = 0而5.0 / 9.0 = 0.555 ......

答案 2 :(得分:0)

(5/9)是整数除法,得到0。