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

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

作者: 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