float 2.0
double 2.0
int 2
long 2
在java中  那个声明是错误的?  昨天的笔试题遇到了这样一道题求解(麻烦一定要说一下理由!!)

解决方案 »

  1.   

    float f = 2.0;//error;
    应该是float f = 2.0f;
    因为浮点型数值默认是double类型的,如果定义为float必须加f后缀标志
      

  2.   

    float 2.0
      错的  
    float与double的区别单精度浮点数在机内占4个字节,用32位二进制描述。 
    双精度浮点数在机内占8个字节,用64位二进制描述。 浮点数在机内用指数型式表示,分解为:数符,尾数,指数符,指数四部分。 
    数符占1位二进制,表示数的正负。 
    指数符占1位二进制,表示指数的正负。 
    尾数表示浮点数有效数字,0.xxxxxxx,但不存开头的0和点 
    指数存指数的有效数字。 指数占多少位,尾数占多少位,由计算机系统决定。 
    可能是数符加尾数占24位,指数符加指数占8位 -- float. 
    数符加尾数占48位,指数符加指数占16位 -- double. 知道了这四部分的占位,按二进制估计大小范围,再换算为十进制,就是你想知道的数值范围。 对编程人员来说,double 和 float 的区别是double精度高,有效数字16位,float精度7位。但double消耗内存是float的两倍,double的运算速度比float慢得多,java语言中数学函数名称double 和 float不同,不要写错,能用单精度时不要用双精度(以省内存,加快运算速度)
      

  3.   

    long l=2L;
    long类型的应该要加L
      

  4.   

    float 2.0 不正确
    float 为单精度的,
    double 为双精度的
      

  5.   

    float 2.0f
    2.0默认是double类型的
     
      

  6.   

    2.0默认是double类型的 二double 8个字节 float4个字节 8个字节转4个字节的需要强制转换 所以正确的应该写成 float a = 2.0f
      

  7.   

    你后面解释的都是你自己的回答还是网上复制的?怎么感觉跑题了,看了其他人的回答,我回想起来c里面声明是float=2.0f,但java里面也是这样》?