1

我有这段代码,根据这个页面 下面的输出应该正确地给我,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");
    }
}
4

6 回答 6

10

在括号中使用9.0 / 5而不是。9 / 5

9 / 5是整数除法,其值为1。因此结果。您只需要将分子分母之一设为双精度/浮点值即可强制浮点除法

((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
于 2012-11-14T12:47:37.573 回答
1
double fah = ((9.0 / 5 )* cel) + 32;
于 2012-11-14T12:47:51.770 回答
1

问题是你没有使用double但是int. 利用

double fah = ((9d / 5d) * cel) + 32d;
于 2012-11-14T12:47:59.787 回答
1

至少使用一个double操作数:

double fah = 9.0 / 5 * cel + 32;

double fah = 9 / 5.0 * cel + 32;

double fah = 9.0 / 5.0 * cel + 32;

这三种方式都是有效的,注意括号是不必要的。

于 2012-11-14T12:49:31.490 回答
0

9是整数,所以是59/5使用整数除法也是如此,这意味着它的结果是 1(整数)而不是 1.8(浮点数)

1*36.8 +32 = 68.8
于 2012-11-14T12:48:47.647 回答
0

整数算术中的 9 / 5 是 1

于 2012-11-14T12:48:55.640 回答