Java 类型铸造int和double

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,将强制转换为尽可能小的整数 看

在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,将强制转换为尽可能小的整数

请注意,在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谢谢。这就是我想知道的。