下列赋值不合法的是(        )
A)  float a = 2.0; B)  double b = 2.0 ; C)  int c = 2;  D)  long d = 2;各位大侠帮个忙,选了答案后解释一下原因,在此谢过了!

解决方案 »

  1.   

    A 不合法,因为浮点数默认是双精度型的,想合法就这样  float a = 2.0f
      

  2.   

    A 不合法 因为说白了 小数值默认的是double 类型 所以A其实是将一个double类型的数赋给一个float类型的变量 会报错 如果想声明一个float类型的变量 要写成float a=2.0f;
      

  3.   

    A是错的   2.0默认是long型的 要加f标示的
      

  4.   

    看似 D好象也错了,long的后面不要加L吗?比如long  l= 2l;
      

  5.   

    在JAVA中出现的类似  2   这样的,都是按int来处理,出现 2.0 这样的按照double处理。
    你可以将一个占用空间小的类型赋给占用空间大的,但是不能将一个占用空间大的赋给占用空间小的。
    另外,在运算过程中,对于中间结果的处理也遵循这个规定。
    比方说
    short s = 40;
    s = s >> 2;//这个也是会报编译错误的。必须改为
     s = (short)s >> 2;
      

  6.   


    Afloat a=2.0f;
      

  7.   

    A,D都不合法,float类型要在后面加上f,否则就是double类型,long类型的要在后面加上l,否则就是int类型的
      

  8.   

    A不合法,因为小数点默认是双精度型的。
    float a = 2.9f;
      

  9.   

    选择A
    因为2.0默认的是double类型的;改正float a = 2.0f;
    其他的2,在默认情况下是int类型的,拿答案D来说,long
    要比int类型精度高,int类型会自动转换成long类型。
      

  10.   

    只有A错 修改为float a=2.0f; D是对的
      

  11.   

    A错呀!应是float a=2.0f,绝对正确!
    以后只要碰到到float的变量赋值只要记住在后面加个f就可以了
      

  12.   


    不用加L是可以的。
    因为2默认的是一个int型的数值,当你把它赋给一个long类型的变量时,系统会把它自动转换为long型的数据去处理。