這段代碼是我寫的將double
轉換成int
得到一個異常。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
轉換成int
得到一個異常。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 d = 10.9;
是你的錯誤。您正在使用包裝類而不是數據類型。使用
double d = 10.9;
那是因爲你不能混用拆箱(轉換您Double
爲雙primitive
)和鑄造。 嘗試
int i = (int)(d.doubleValue());
你不能施放包裝像Double直接到像int這樣的原始類型。
你可以試試這個 -
int i = (int)((double)d);
詳細檢查下面的鏈接 - http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html
'你不能像Double一樣將包裝類型轉換爲像int這樣的原始類型.'不總是'(double)new Integer(5);'會起作用。 – BaSsGaz
錯字'convertig'。缺少'n'。 –