有人可以解释类型转换如何在行中运行int y =(int)x; 谢谢
public class typecast
{
public static void main(String [] args)
{
double x=10.5;
int y=(int) x;
System.out.println("x="+x);
System.out.println("y="+y);
}
}
答案 0 :(得分:5)
类型转换执行缩小类型转换。确切的转换取决于double值,如下所示:
int
值的范围内,则将其舍入为零。Integer.MIN_VALUE
或Integer.MAX_VALUE
。 参考:JLS 5.1.3
注意:“向零舍入”的定义如下:
“将浮点值转换为整数(第5.1.3节)时,Java编程语言使用舍入为零,在这种情况下,就像数字被截断一样,丢弃尾数位。零选择其结果的格式值最接近并且幅度不大于无限精确的结果。“
答案 1 :(得分:0)
在这种特殊情况下,如果尝试获取double(变量x)并将其值赋给int(变量y),则代码将无法编译。因此,您必须明确告诉编译器将类型从double转换(转换)为int。当它这样做时,在这种特殊情况下,我相信它会丢弃小数部分而不是向上/向下舍入。关于最后一点我可能是错的。