【发布时间】:2019-11-07 07:13:05
【问题描述】:
我想知道在我的示例中 Double 反转为 int 时发生了什么?
这个案子是对的
Double d = 123.13;
int i = (int)(Math.random()*d);
这种情况是错误的
Double d = 123.13;
int i = (int)(d);
错误信息:Inconvertible types;cannot cast'java.lang.Double'to'int'
我知道我可以使用 d.intValue 来做到这一点,但我只是想知道上面两种情况有什么区别
【问题讨论】:
-
将错误消息添加为文本而不是图像
-
Double不能转换为int:因为int不是Double的子类型 -
Math.random()*d的类型是double,而不是Double。 -
@ernest_k
double也不是Double的子类型。只是定义了转换。 -
int i = d.intValue()