在 Java 的原始类型转换中,以下代码将显示什么?
float a = 1.11;
int b = a;
int c = (int)a;
System.out.println(a + " " + b + " " + c);
如果 double 是 64 位而 int 是 32 位,是否可以将 double 变量转换为 int?
在 Java 的原始类型转换中,以下代码将显示什么?
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
请注意,Java 中将 int 定义为 32 位(用于永恒),而 double 定义为 64 位(用于永恒)。
这将编译:
float a = 1.11f;
int b = (int) a;
int c = (int)a;
System.out.println(a + " " + b + " " + c);
float
变量,您应该f
在数值的末尾添加。 float
, 和 a 一样,如果位大小不同double
,则不能转换为类型。int
google.com
找到这样的答案。