美文网首页
使用BigDecimal对浮点数进行精确计算

使用BigDecimal对浮点数进行精确计算

作者: 测试老杨 | 来源:发表于2018-09-05 09:25 被阅读16次

    问题

    Java的简单类型不能够精确的对浮点数进行运算。比如:

    package day05;
    
    public class YzcCalTest {
        public static void main(String[] args) {
            double a=1;
            double b=0.9;
            double c=a-b;
            System.out.println(a+"-"+b+"="+c);
        }
    }
    

    控制台截图


    image.png

    解决方案

    使用JDK提供的BigDecimal对浮点数进行精确计算。
    重构后的代码如下:

    package day05;
    
    import java.math.BigDecimal;
    
    public class YzcCalTest {
        public static void main(String[] args) {
            double a=1;
            double b=0.9;
            BigDecimal a2 = new BigDecimal(a+"");
            BigDecimal b2 = new BigDecimal(b+"");
            BigDecimal c2 = a2.subtract(b2);
            double c=c2.doubleValue();
            System.out.println(a+"-"+b+"="+c);
        }
    }
    

    控制台截图


    image.png

    参考资料

    https://blog.csdn.net/huiwenjie168/article/details/6998140

    相关文章

      网友评论

          本文标题:使用BigDecimal对浮点数进行精确计算

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