java处理浮点类型的加减乘除法出现小数点精度错乱的解决方法

来源:互联网 发布:ubuntu 目录分类 编辑:程序博客网 时间:2024/06/05 10:03

如果你在java里面运行一下一段代码,你会发现会出现错乱的小数点:

        double d1 = 100.0234;        double d2 = 12.0652;        System.out.println(d1-d2);

输出的结果可能是这样的:87.95819999999999
这个结果绝对不是我们所需要的结果咯,因为这个是科学计数的结果,如果你想要得到正确的结果,那么必须用到java.math.BigDecimal里面的方法。
如下代码:

        double d1 = 100.0234;        double d2 = 12.0652;        BigDecimal b1 = new BigDecimal(Double.toString(d1));        BigDecimal b2 = new BigDecimal(Double.toString(d2));        System.out.println(b1.subtract(b2).doubleValue());

注意BigDecimal的初始化一定要是字符串格式的哦。
这样就解决了浮点型精度错乱的问题了。

0 0
原创粉丝点击