-1 int
1.0 double
42e1 double
2.02f float
3.03d double
0x0123 intfloat好像总是那么麻烦

解决方案 »

  1.   

    float foo = 1.0;
    float foo = 42e1;
    对于含有小数点的数和指数,编译器通常作为double来处理,所以认为丢失精度。
    甚至 1. 也不行。
      

  2.   

    那么-1编译器把它当int 怎么可以呢?
      

  3.   

    对于含有小数点的数和指数,编译器通常作为double来处理, double 赋值给float时需要强制类型转换。
      

  4.   

    int可以赋值给float
    byte--short-char--int--long--float--double
      

  5.   

    A. float foo = -1;
    B. float foo = (float)1.0;
    C. float foo = (float)42e1;
    D. float foo = 2.02f;
    E. float foo = (float)3.03d;
    F. float foo = 0x0123;前面的已经说对了,只要强制类型转换就可以了,因为float默认用double来处理
      

  6.   

    1.0 是 double 型 b 可改为float foo=1.0f;
    c 中42e1同样会被认成 double c可改为float foo=42e1f;
      

  7.   

    java 中小数默认为double型,所以b不对,还可以在小数后加d指定为double所以c不对。