我正在写一个非常简单的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作为我的数据类型,并在添加(不相关)括号时切换计算。
答案 0 :(得分:6)
5/9
计算结果为0,因为0.5555555556向0舍入为0,这是因为您使用的是整数除法。将其中一个整数更改为浮点数:
5 / 9.0
如果两个数字都是整数,则使用整数除法来截断结果。其中一个操作数必须是非整数才能使用非整数除法。
答案 1 :(得分:1)
替换
{p}5/9
与5.0/9.0
。这将确保您获得适当的分工。 5/9 = 0而5.0 / 9.0 = 0.555 ......
答案 2 :(得分:0)
(5/9)是整数除法,得到0。