我是靠谱客的博主 热心金鱼,最近开发中收集的这篇文章主要介绍java 浮点数加减乘除精度丢失问题解决方法,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

使用

import java.math.BigDecimal;

另外需要注意,使用BigDecimal(double val)构造函数时仍会存在精度丢失问题,建议使用BigDecimal(String val)。这就需要先把double转换为字符串然后在作为BigDecimal(String val)构造函数的参数。转换为BigDecimal对象之后再进行加减乘除操作,这样精度就不会出现问题了。这也是为什么有关金钱数据存储都使用BigDecimal。

import java.math.BigDecimal;

public class testDouble {
    public static void main(String[] args) {
   
        double a = 1.3;
        double b = 32.123;
        System.out.println(Double.sum(a, b));//丢失精度
        System.out.println(a+b);
        BigDecimal bigDecimal = new BigDecimal(Double.toString(a));
        BigDecimal bigDecimalB = new BigDecimal(Double.toString(b));
        System.out.println(bigDecimal.add(bigDecimalB));//33.423
    }
}

 

最后

以上就是热心金鱼为你收集整理的java 浮点数加减乘除精度丢失问题解决方法的全部内容,希望文章能够帮你解决java 浮点数加减乘除精度丢失问题解决方法所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(52)

评论列表共有 0 条评论

立即
投稿
返回
顶部