【发布时间】:2018-05-17 13:25:22
【问题描述】:
我们已经知道Math.lang()函数在java中的返回类型是double。
class Lossy {
public static void main(String args[]) {
int sum;
sum=Math.pow(2,3);
System.out.println (sum);
}
}
现在这个语句可能会导致有损转换错误,因为变量是 int 类型,Math.pow() 返回一个double 值,即8.0,这很公平。
现在看看下面的代码有一些变化。
class Lossy {
public static void main(String args[]) {
int sum=2;
sum+=Math.pow(2,3);
System.out.println (sum);
}
}
现在,如果我们编译此代码,我们不会收到可能的转换错误,因为我们在 integer 变量中存储了一个双精度值,所以我们应该得到这个错误。此外,当我们打印该值时,它会显示一个整数值。为什么?
【问题讨论】: