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です。したがって、結果。浮動小数点除算を適用するには、分子または分母の1つを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
于 2012-11-14T12:47:37.573 に答える
1

問題は、使用していないことですdoubleint。使用する

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

少なくとも1つのdoubleオペランドを使用します。

double fah = 9.0 / 5 * cel + 32;

double fah = 9 / 5.0 * cel + 32;

double fah = 9.0 / 5.0 * cel + 32;

これらの3つの方法は有効であり、括弧は不要であることに注意してください。

于 2012-11-14T12:49:31.490 に答える
1
double fah = ((9.0 / 5 )* cel) + 32;
于 2012-11-14T12:47:51.770 に答える
0

9は整数なので、5:も9/5整数除算を使用しています。つまり、1.8(浮動小数点)ではなく1(整数)になります。

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

整数演算の9/5は1です

于 2012-11-14T12:48:55.640 に答える