7

私が書いたこのコードは、例外を取得するように変換doubleします。int

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Cannot cast from Double to int

これは私のコードです

Double d = 10.9;    
int i = (int)(d);
4

4 に答える 4

11

Doubleプリミティブ の上にあるラッパーdoubleクラスです。にキャストできますが、直接doubleキャストすることはできません。int

doubleの代わりに使用すると、次のDoubleようにコンパイルされます。

double d = 10.9;    
int i = (int)(d); 

double次のように、途中でキャストを追加することもできます。

int i = (int)((double)d); 
于 2012-12-30T05:24:39.023 に答える
6

Doubleこれは、ボックス化解除 (を double に変換primitive) とキャストを混在させることができないためです。試す

int i = (int)(d.doubleValue());
于 2012-12-30T05:24:21.200 に答える
2

これ

Double d = 10.9;

あなたのエラーです。データ型の代わりにラッパー クラスを使用しています。使用する

double d = 10.9;
于 2012-12-30T05:24:18.980 に答える
0

Double のようなラッパーを int のようなプリミティブ型に直接キャストすることはできません。

あなたはこれを試すことができます -

int i = (int)((double)d);

詳細については、次のリンクを確認してください - http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html

于 2012-12-30T06:10:11.840 に答える