次の行を使用して double 定数を指定しようとしています。実行時にこの定数の値0.0
が
private static final double CONSTANT = 1/2;
次の行を使用して double 定数を指定しようとしています。実行時にこの定数の値0.0
が
private static final double CONSTANT = 1/2;
1 と 2 は整数として解釈され、整数の除算結果が生成されます。最後に D を追加して、double として解釈されるようにします。
private static final double CONSTANT = 1D/2D;
0.0
整数除算の結果は切り捨てられた整数であるため、定数は の値になります。したがって、初期化の値は0
ではなく0.5
です。結果を強制するdouble
には、オペランドの 1 つまたは両方を a にしますdouble
。
private static final double CONSTANT = 1/2.0; // or 1/2D, or even 1D/2D