私は、思った通りに動作しない単純な Java プログラムを持っています。
public class Divisor
{
public static void main(String[] args)
{
int answer = 5 / 2;
System.out.println(answer);
}
}
これが 2.5 を出力しないのはなぜですか?
私は、思った通りに動作しない単純な Java プログラムを持っています。
public class Divisor
{
public static void main(String[] args)
{
int answer = 5 / 2;
System.out.println(answer);
}
}
これが 2.5 を出力しないのはなぜですか?
5 / 2 は整数除算です (整数変数に格納しています)。2.5 にしたい場合は、浮動小数点除算を使用する必要があります。
double answer = 5.0 / 2.0;
整数除算は常に、最も近い整数に切り捨てられた通常の数学除算と等しくなります。
Javaには整数除算があり、整数を整数で割ると整数になります。2.5
は整数で表すことができないため、結果は にフロアされ2.0
ます。さらに、結果を整数で格納します。
浮動小数点除算が必要な場合は、オペランドの 1 つを double にキャストし、answer
型を変更することもできdouble
ます。ここではリテラル値を使用しているため、 に変更5
すると5.
、このリテラル値がになりますdouble
。
最終的には、次のことがうまくいくはずです。
double answer = 5. / 2;
ドット記号の後にゼロ記号さえ必要ないことに注意してください!