3

ここで単純な Java コードを実行しています。これは、華氏を摂氏に変換するために呼び出されるメソッドです。ただし、いつでも実行すると、出力は常に0.0.

正しい計算を出力することはできません。私が忘れていたばかげた小さなことがおそらくあるでしょう、誰かが私を助けてくれませんか?

public class ExampleQ {

    public static void main(String[] args) {

        System.out.println(Celsius(50));
    }

    public static double Celsius(double F)
    {
        return (5 / 9) * (F - 32);
    }
}
4

6 に答える 6

7

エラーは整数除算です。

Javaで5 / 9 = 0

試す:

return (5.0 / 9) * (F - 32);
于 2013-04-10T06:25:49.460 に答える
4

これが解決策です。オンライン コンパイラ Ideone http://ideone.com/zRyG80でテスト済み

と交換return (5 / 9) * (F - 32);するだけreturn (F - 32) * 5 / 9;

その理由は、オペレーターの実行順序にある​​ためです。あなたのコードでは、乗算の前に除算が実行され、5/9 = 0 になります。

class Main {
    public static void main(String[] args) throws java.lang.Exception {

        System.out.println(Celsius(50));
    }

    public static double Celsius(double F) {
        return (F - 32) * 5 / 9;
    }
}

出力

10.0

于 2013-04-10T06:35:38.160 に答える
3

5 / 9整数除算を実行しているため、0 を返します。

5.0 / 9.0代わりに使用

于 2013-04-10T06:27:17.733 に答える
2

(5/9) は整数として解釈され、0.0 に丸められます。

整数を避けるには、(5.0/9) に置き換えることができます。

于 2013-04-10T06:28:38.140 に答える
2

または、以下のコードを使用できます

return (5d / 9d) * (F - 32);
于 2013-04-10T06:28:53.363 に答える