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