Double不会转换为int

May*_*tap 7 java eclipse double int

我编写的代码转换doubleint异常.

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
Cannot cast from Double to int
Run Code Online (Sandbox Code Playgroud)

这是我的代码

Double d = 10.9;    
int i = (int)(d);
Run Code Online (Sandbox Code Playgroud)

das*_*ght 10

Double是原语之上的包装double.它可以转换为double,但不能int直接转换.

如果您使用double而不是Double,它将编译:

double d = 10.9;    
int i = (int)(d); 
Run Code Online (Sandbox Code Playgroud)

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

int i = (int)((double)d); 
Run Code Online (Sandbox Code Playgroud)


rad*_*dai 5

那就是因为您不能混合拆箱(将您的内容转换Double为double primitive)和投射。尝试

int i = (int)(d.doubleValue());
Run Code Online (Sandbox Code Playgroud)