簡體   English   中英

Double 未轉換為 int

[英]Double is not converting to an 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轉換為雙primitive )和鑄造。 嘗試

int i = (int)(d.doubleValue());

這個

Double d = 10.9;

是你的錯誤。 您正在使用包裝類而不是數據類型。 使用

double d = 10.9;

您不能直接將像Double這樣的包裝器轉換為原始類型。

你可以嘗試這個 -

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

有關更多檢查以下鏈接 - http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM