9

次に例を示します。

Double d = (1/3);
System.out.println(d);

これは、0.33333 ではなく 0 を返します。

誰か知っていますか?

4

3 に答える 3

38

これは、1とは特に指定しない場合と同様に3扱われるため、 に評価されてにキャストされるためです。それを修正するには、 を試すか、double 値を扱っていることを明示的に述べてください。integers1/3integer 0double 0(1.0/3)1D/3

于 2008-12-14T06:48:11.707 に答える
12

int浮動小数点除算を使用して除算したい s がある場合は、 を にキャストする必要がありintますdouble

double d = (double)intValue1 / (double)intValue2

(実際には、キャストするだけで自動的にキャストされるようintValue2になるはずです。)intValue1double

于 2008-12-14T07:00:27.827 に答える
1

オブジェクトの意味でこれらの値を使用する必要がない限り、 Doubleではなくdoubleを使用してください。オートボクシングの概念に注意してください

于 2008-12-14T07:05:10.783 に答える