在Java中的原始类型转换中,以下代码将显示什么内容?类型转换int和double
float a = 1.11;
int b = a;
int c = (int)a;
System.out.println(a + " " + b + " " + c);
如果double是64位而int是32位,那么double变量可以转换为int吗?
在Java中的原始类型转换中,以下代码将显示什么内容?类型转换int和double
float a = 1.11;
int b = a;
int c = (int)a;
System.out.println(a + " " + b + " " + c);
如果double是64位而int是32位,那么double变量可以转换为int吗?
要回答你最后一个有趣的问题(问题的其他部分最好由调试器回答),对于int来说太大的double将投射到最大可能的int中;类似地,对于一个int来说太小的double将投射到尽可能小的int。
http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#d5e4334参见
注意,一个int是用Java定义为32个比特(永恒)和双为64位(永恒)。
这将编译:
float a = 1.11f;
int b = (int) a;
int c = (int)a;
System.out.println(a + " " + b + " " + c);
float
,你应该在数值的结尾添加f
。float
,就像double
一样,在不同的位大小的情况下不能被转换成int
类型。google.com
找到这样的答案。
_“以下代码会显示什么?”_你为什么不试试自己?它不会显示,因为它不会编译。 –
请问清楚你的问题 –
为什么不编译? –