我编写的这段代码转换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 这样的原始类型。
你可以试试这个——
int i = (int)((double)d);
有关更多信息,请查看以下链接 - http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html