6

私は奇妙な問題を抱えています。

このコードは単に int を別の int で除算し、結果を double 変数に格納して出力します。

int a = 200;
int b = 557;

double divisionResult = a / b;

System.out.println("Result: " + divisionResult);

このコードを実行すると、出力は次のようになります。

Result: 0

これは奇妙200/557です。0.3590664272890485

分割線にキャストaしてbtoすると気がついたdouble

double divisionResult = (double) a / (double) b;

それは完全に機能します。

実際の除算結果を得るために変数を double にキャストする必要があるのはなぜですか?

4

4 に答える 4

0

あなたが今それをやっている方法は次のようなものだからです:

a と b で整数除算を行います。その結果は整数 0 です。その後、結果を double に代入します。

a または b のいずれかを double にキャストするだけで、Java はそれを認識し、結果として double を返します。

于 2013-05-02T12:01:20.467 に答える