Java 类型铸造int和double
在Java中的原语类型转换中,下面的代码将显示什么Java 类型铸造int和double,java,casting,integer,double,type-conversion,Java,Casting,Integer,Double,Type Conversion,在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;类似地,对于整数太小的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;类似地,对于整数太小的double,将强制转换为尽可能小的整数 看 请注意,在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
与double
一样,如果位大小不同,则不能将其转换为int
类型google.com
查找此类答案“下面的代码会显示什么?”为什么不自己试试?它不会显示任何东西,因为它没有编译。请明确地问你的问题为什么它不会编译?因为在编译时不可能从
a
转换到b
;您将失去准确性。@fge谢谢。这就是我想知道的。