0
public static void main (String[] args) {

   for (double f=0; f<=20;f++) {
      System.out.println(f+":Degrees Fahrenheit converted to Celsius = "+ celsius(f));
   }
}

public static double celsius (double fahrenheit) {
    double cels=(fahrenheit-32)/(5/9);
    return cels;
}

このプログラムでは、華氏を摂氏に変換しようとしています。プログラムを実行するときに摂氏メソッドをメインに呼び出すと、摂氏の最終結果は常に無限になります。私は何を間違っていますか?

4

2 に答える 2

4

常にintを返すint除算を行っています。たとえば、5/90 を返します。

代わりに二重除算を使用します5.0/9.0

あなたのコードのために:

public static double celsius (double fahrenheit) {
    return (fahrenheit - 32) / (5.0 / 9.0);
}

何度も質問されているため、この質問はおそらく重複としてクローズする必要があります。例:華氏から摂氏への変換-利回りのみ-0-0-and-0-0

于 2013-10-30T17:51:04.267 に答える
2

(5/9)は整数除算であり、常に を返します0

そのはず:(5.0/9.0)

于 2013-10-30T17:51:39.080 に答える