次に例を示します。
Double d = (1/3);
System.out.println(d);
これは、0.33333 ではなく 0 を返します。
誰か知っていますか?
これは、1
とは特に指定しない場合と同様に3
扱われるため、 に評価されてにキャストされるためです。それを修正するには、 を試すか、double 値を扱っていることを明示的に述べてください。integers
1/3
integer
0
double
0
(1.0/3)
1D/3
int
浮動小数点除算を使用して除算したい s がある場合は、 を にキャストする必要がありint
ますdouble
。
double d = (double)intValue1 / (double)intValue2
(実際には、キャストするだけで自動的にキャストされるようintValue2
になるはずです。)intValue1
double
オブジェクトの意味でこれらの値を使用する必要がない限り、 Doubleではなくdoubleを使用してください。オートボクシングの概念に注意してください