Double不会转换为int

时间:2012-12-30 05:21:16

标签: java eclipse int double

我编写此代码是为了将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 个答案:

答案 0 :(得分:10)

Double是基元double之上的包装类。它可以转换为double,但不能直接转换为int

如果您使用double代替Double,则会编译:

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

你也可以在中间添加一个强制转换为double,如下所示:

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

答案 1 :(得分:5)

那是因为你不能混合拆箱(将你的Double转换为双primitive)并进行投射。 尝试

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

答案 2 :(得分:2)

Double d = 10.9;

是你的错误。您正在使用包装类而不是数据类型。使用

double d = 10.9;

答案 3 :(得分:0)

你不能将像Double这样的包装器直接转换为像int这样的原始类型。

你可以试试这个 -

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

更多检查以下链接 - http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html