美文网首页Java面试必知必会
「Java面试必会」金额处理

「Java面试必会」金额处理

作者: 花生无翼 | 来源:发表于2018-12-11 14:15 被阅读196次

    存储金额到底用什么数据类型?用double,float,还是BigDecimal?看似简单的一道问题,其实是面试中的高频题。如果你回答double了,那么直接可以pass了。用double到底错在哪里?下面看一个题:

    double a = 0.05;
    double b = 0.06;
    System.out.println(b-a);
    

    答案应该是多少呢?是不是脱口而出0.01。不是!!!
    结果是:

    0.009999999999999995

    double和float一样都是浮点型,浮点型和小数不是一样的。
    浮点数计算不是一个确定的值,金额计算出的值必须是准确的,
    所以我们一般用java.math.BigDecimal

    相关文章

      网友评论

        本文标题:「Java面试必会」金额处理

        本文链接:https://www.haomeiwen.com/subject/zqwdhqtx.html