私が書いたこのコードは、例外を取得するように変換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);
Doubleプリミティブ の上にあるラッパーdoubleクラスです。にキャストできますが、直接doubleキャストすることはできません。int
doubleの代わりに使用すると、次のDoubleようにコンパイルされます。
double d = 10.9;
int i = (int)(d);
double次のように、途中でキャストを追加することもできます。
int i = (int)((double)d);
Doubleこれは、ボックス化解除 (を double に変換primitive) とキャストを混在させることができないためです。試す
int i = (int)(d.doubleValue());
これ
Double d = 10.9;
あなたのエラーです。データ型の代わりにラッパー クラスを使用しています。使用する
double d = 10.9;
Double のようなラッパーを int のようなプリミティブ型に直接キャストすることはできません。
あなたはこれを試すことができます -
int i = (int)((double)d);
詳細については、次のリンクを確認してください - http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html