登录

去注册

登录

注册

去登录

注册

解锁回答区域

  • 扫码关注公众号
  • 发送“我爱安卓

若你登陆,将永久解锁;
若未登录,仅本机解锁。

解锁回答区域

每日一问 精度到底是哪里丢失了?

xiaoyang   2019-12-04 00:18   收藏

上周几个小伙伴聊到一个比较有意思的问题,大家都知道浮点数相加,会丢失精度:

看这个例子:

    public static void main(String[] args){
        System.out.println(0.3f + 0.6f);
        System.out.println(0.3 + 0.6);
        System.out.println(0.9);
    }
输出:

0.90000004
0.8999999999999999
0.9

问题是:

精度为什么会丢失,计算机能存那么多数字,一个0.3+0.6怎么就丢精度了呢?

附加题:为何 float 和 double 的计算输出结果差异还挺大的呢?

jdk 1.8.0

删除留言

确认删除留言,会导致相关评论丢失?

取消 确定