输入int和double

时间:2013-06-19 14:06:10

标签: 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吗?

2 个答案:

答案 0 :(得分:2)

为了回答你最后一点有趣(问题的其他部分最好由调试器回答),对于int来说太大的double将被转换为最大可能的int;类似地,对于一个对于int而言太小的double将转换为最小的int。

请参阅http://docs.oracle.com/javase/specs/jls/se7/html/jls-5.html#d5e4334

请注意,int在Java中定义为32位(永恒),double是64位(永恒)。

答案 1 :(得分:0)

这将编译:

float a = 1.11f;
int b = (int) a;
int c = (int)a;
System.out.println(a + " " + b + " " + c);
  1. 要初始化float变量,您应在数值末尾添加f
  2. floatdouble一样,如果位数不同,则无法转换为int类型。
  3. 下次请使用google.com查找此类答案。