-4

私は、思った通りに動作しない単純な Java プログラムを持っています。

public class Divisor
{
    public static void main(String[] args)
    {
        int answer = 5 / 2;
        System.out.println(answer);
    }
}

これが 2.5 を出力しないのはなぜですか?

4

2 に答える 2

3

5 / 2 は整数除算です (整数変数に格納しています)。2.5 にしたい場合は、浮動小数点除算を使用する必要があります。

double answer = 5.0 / 2.0;

整数除算は常に、最も近い整数に切り捨てられた通常の数学除算と等しくなります。

于 2013-09-21T14:04:37.393 に答える
2

Javaには整数除算があり、整数を整数で割ると整数になります。2.5は整数で表すことができないため、結果は にフロアされ2.0ます。さらに、結果を整数で格納します。

浮動小数点除算が必要な場合は、オペランドの 1 つを double にキャストし、answer型を変更することもできdoubleます。ここではリテラル値を使用しているため、 に変更5すると5.、このリテラル値がになりますdouble

最終的には、次のことがうまくいくはずです。

double answer = 5. / 2;

ドット記号の後にゼロ記号さえ必要ないことに注意してください!

于 2013-09-21T14:05:03.883 に答える