美文网首页
Java Double精准计算的坑

Java Double精准计算的坑

作者: 苏打柠檬水 | 来源:发表于2017-02-27 12:16 被阅读118次

    Java Double精准计算的坑

    
        public static void main(String[] args) {
            System.out.println(5053.6 * 100);
            BigDecimal bigDecimal1 = new BigDecimal(5053.6);
            BigDecimal bigDecimal2 = new BigDecimal(100);
            double d1 = bigDecimal1.multiply(bigDecimal2).doubleValue();
            System.out.println(d1);
            BigDecimal bigDecimal3 = new BigDecimal(5053.6+"");
            BigDecimal bigDecimal4 = new BigDecimal(100+"");
            double d2 = bigDecimal3.multiply(bigDecimal4).doubleValue();
            System.out.println(d2);
        }
    
    

    505360.00000000006

    505360.000000000060

    505360.0

    第一个计算结果是错误的
    第二个计算结果也是错误的
    只有第三个计算结果是正确

    这是一个做电商应用常见得坑,可以做为面试题

    相关文章

      网友评论

          本文标题:Java Double精准计算的坑

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