美文网首页
使用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