解决方案 »

  1.   

    这个浮点数在计算机中如何保存有关,具体实现的,楼主可以参考http://www.math.byu.edu/~schow/work/IEEEFloatingPoint.htm
      

  2.   

    首先:你自己猜测,输出2感觉是输出1的进位的结果,计算机的运算可不能这么猜测,必须要懂他的原理
    找了找资料
    1,先了解float在内存中是怎么存储的
            float有32位,存储如下.
            
    2,把214748364这个数字转为2进制
       1100110011001100110011001100
    3,然后变成这样,从最后1位移动27才形成这样的效果,转化的时候必须形成1.什么的效果
       1.100110011001100110011001100
    4.按照1步骤的说法
       1   10011010  10011001100110011001100
    符号 指数             省略了后4位组成的
    5,这个好像是内存存储float的方式(为啥说好像呢,因为我也是刚刚看了下资料来的,所以我也不确定对不对)
    6,因为省略了后四位,所以精度就错了
    7,开始反推回去
    第一位说明是正数
    后八位代表指数10011010  - 127 = 154 - 127 = 27 为啥减127呢,看资料看的
    后面的数加上1.  为 1.10011001100110011001100 ,指数27为正数,所以小数点后移27位,遇到不足的情况(我也不知道补啥)
    我就补1了,变为1100110011001100110011001111 十进制为214748367.  2.14748367E8 ,跟你的差1,不知道为什么
      

  3.   

    估计是sun公司的代码中的bug!