有人可以解释类型转换是如何工作的:int y =(int)x; 谢谢java中的类型转换:Integer和Double
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);
}
}
有人可以解释类型转换是如何工作的:int y =(int)x; 谢谢java中的类型转换:Integer和Double
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);
}
}
类型转换执行缩小类型转换。确切的转换取决于双倍值,如下所示:
int
值的范围内,则会向零调整。Integer.MIN_VALUE
或Integer.MAX_VALUE
。参考:JLS 5.1.3
注:“圆形向零”被定义为如下:
“Java编程语言朝向零的浮点值转换为整数(当使用圆§5.1.3),在这种情况下,它的作用就像截断数字一样,舍弃尾数位。舍入到零时,其结果选择格式的值最接近数值而不超过无限精度的结果“
更详细的描述给你。谢谢斯蒂芬,我只是懒得去查看规格,并把它放到更技术更清洁的地方。 – Drizzt321
在这种特殊情况下,如果你尝试采取双重(变量x),并为其分配的价值为int(变量y)的代码将无法编译。所以你必须明确告诉编译器将类型从double转换为int。当它这样做时,在这种特殊情况下,我相信它会减少小数部分而不是四舍五入。我最后一点可能是错的。
您是否尝试打印'y'的值。你得到了什么??你不明白的是什么? –
你能解释一下在这两行中你觉得神秘吗? – user1406062