美文网首页
解决浮点型商业运算中丢失精度的问题

解决浮点型商业运算中丢失精度的问题

作者: wbpailxt | 来源:发表于2020-01-11 18:54 被阅读0次

    先直接给出解决办法:使用入参为String的BigDecimal构造器。
    先抛出问题现象:

    package com.mmall.test;
    
    import org.junit.Test;
    import java.math.BigDecimal;
    
    public class BigDecimalTest {
    
        @Test
        public void test1(){
            System.out.println(0.05+0.01);
            System.out.println(1.0-0.42);
            System.out.println(4.015*100);
            System.out.println(123.3/100);
        }
    
        @Test
        public void test2(){
            BigDecimal b1 = new BigDecimal(0.05);
            BigDecimal b2 = new BigDecimal(0.01);
            System.out.println(b1.add(b2));
        }
    }
    
    图片.png

    总是不能很好地计算出结果。
    解决方案:

    package com.mmall.test;
    
    import org.junit.Test;
    import java.math.BigDecimal;
    
    public class BigDecimalTest {
        @Test
        public void test3(){
            BigDecimal b1 = new BigDecimal("0.05");
            BigDecimal b2 = new BigDecimal("0.01");
            System.out.println(b1.add(b2));
        }
    }
    
    图片.png

    相关文章

      网友评论

          本文标题:解决浮点型商业运算中丢失精度的问题

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