java中的类型转换:整数和双精度
有人能解释一下在int y=(int)x行中,类型转换是如何工作的吗; 多谢各位java中的类型转换:整数和双精度,java,casting,Java,Casting,有人能解释一下在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); } } 在这种特殊情况下,如果尝试获取double(变量x)并将其值赋给int(变量y)
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);
}
}
在这种特殊情况下,如果尝试获取double(变量x)并将其值赋给int(变量y),代码将无法编译。因此,您必须显式地告诉编译器将类型从double转换为int。当它这样做时,在这种特殊情况下,我相信它会删除小数部分,而不是向上/向下舍入。最后一点我可能是错的。在这种特殊情况下,如果您尝试获取double(变量x)并将其值赋给int(变量y),代码将无法编译。因此,您必须显式地告诉编译器将类型从double转换为int。当它这样做时,在这种特殊情况下,我相信它会删除小数部分,而不是向上/向下舍入。最后一点我可能错了。类型转换执行缩小类型转换。精确转换取决于双精度值,如下所示:
- 如果它在
值的范围内,则向零舍入int
- 如果超出范围或为“Inf”值,则转换将根据符号给出
或整数.MIN_值
李>整数.MAX_值
- 如果是“NaN”值,则转换为零
类型转换执行缩小类型转换。精确转换取决于双精度值,如下所示:
- 如果它在
值的范围内,则向零舍入int
- 如果超出范围或为“Inf”值,则转换将根据符号给出
或整数.MIN_值
李>整数.MAX_值
- 如果是“NaN”值,则转换为零
您是否尝试打印
y
的值。你得到了什么??还有什么你不明白的?你能解释一下你在这两行中发现的神秘之处吗?你试过打印y
的值吗。你得到了什么??还有什么你不明白的?你能解释一下你在这两行中发现的神秘之处吗?更详细的描述。谢谢Stephen,我只是懒得去查阅说明书,把它放到更技术、更干净的地方。更详细的描述给你。谢谢Stephen,我只是太懒了,没有去查说明书,把它放到更技术、更干净的地方。