我想知道 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
转换为 double
,但不能直接转换为 int
。
第二个片段可以通过编译:
Double d = 123.13;
int i = (int)(double)(d);
在第一个代码段中,您将一个基元(Math.random()*d
的类型是 double
)转换为 int
,这是允许的。
关于java - double 到 int 和 double 到 int,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58743651/