我有这段代码并根据此页here 下面的输出应该是正确的给我,98.24但这给了我68.8,我在这里缺少什么?
public class Qn1
{
public static void main(String[] args)
{
double cel = 36.8;
double fah = ((9 / 5 )* cel) + 32;
System.out.println(cel + "deg C =" + fah +" deg F");
}
}
答案 0 :(得分:10)
在括号中使用9.0 / 5
代替9 / 5
。
9 / 5
是整数除法,其值为1
。结果就是如此。您只需要将 numerator 或分母中的一个 double / float 值强制执行浮点除法
((9 / 5 ) * cel) + 32 = (1 * 36.8) + 32 = 68.8
你需要的是: -
((9.0 / 5 ) * cel) + 32 = (1.8 * 36.8) + 32 = 66.24 + 32 = 98.24
答案 1 :(得分:1)
double fah = ((9.0 / 5 )* cel) + 32;
答案 2 :(得分:1)
问题是您没有使用double
,而是int
。使用
double fah = ((9d / 5d) * cel) + 32d;
答案 3 :(得分:1)
使用至少一个double
操作数:
double fah = 9.0 / 5 * cel + 32;
double fah = 9 / 5.0 * cel + 32;
double fah = 9.0 / 5.0 * cel + 32;
这三种方式都有效,请注意括号是不必要的。
答案 4 :(得分:0)
9
是整数,因此5
:所以9/5
使用整数除法,这意味着它导致1(整数)而不是1.8(浮点数)
1*36.8 +32 = 68.8
答案 5 :(得分:0)
整数运算的9/5是1