同样都是double型的运算,为什么得到的结果就是不同呢,上面一个结果为0.42000000000004
xia下面一个的结果为0.87,解释一下,是什么原因呢?

解决方案 »

  1.   

    浮点型运算,得到的结果不一定是绝对精确的。取决于计算机中的double型数据的有效位位数。
      

  2.   

    C 的代码也是这样的……取决于 CPU ……
      

  3.   

    System.err.println(1.03-.61);
    System.err.println(1.03-.16); 都不一样,输出结果当然不一样啦!真是莫名其妙!
    一个是.61而另一个是.16:(
      

  4.   

    JerKii(Jack) 你简直是太傻了,谁都知道结果不一样,你难道没有学过double,float,我是再和大家讨论一下为什么有的浮点运算可以得到真确的结果,而有的却又不行呢,你比较厉害的,你就来说说看啊,为什么的一个结果是一直错误的,而第二个的结果一直是正确的呢?有种的就来说说看!