封装关于金额计算的double工具类

时间:2019-12-16
本文章向大家介绍封装关于金额计算的double工具类,主要包括封装关于金额计算的double工具类使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

由于直接使用double类型的加减乘除,可能会出现不可预测的问题,精度丢失等等。在业务中,计算金额是一件很重要的事情。

可以直接使用BigDecimal类,进行加减乘除。相关BigDecimal类介绍:https://blog.csdn.net/haiyinshushe/article/details/82721234

当然为了业务中方便使用,封装了一个工具类,如下:

import java.math.BigDecimal;

public class BigDecimalUtil {
    private BigDecimalUtil() {
    }

    //
    public static BigDecimal add(double v1, double v2){
        BigDecimal b1 = new BigDecimal(Double.toString(v1));
        BigDecimal b2 = new BigDecimal(Double.toString(v2));
        return b1.add(b2);
    }
    //
    public static BigDecimal sub(double v1, double v2){
        BigDecimal b1 = new BigDecimal(Double.toString(v1));
        BigDecimal b2 = new BigDecimal(Double.toString(v2));
        return b1.subtract(b2);
    }
    //
    public static BigDecimal mul(double v1, double v2){
        BigDecimal b1 = new BigDecimal(Double.toString(v1));
        BigDecimal b2 = new BigDecimal(Double.toString(v2));
        return b1.multiply(b2);
    }
    //
    public static BigDecimal div(double v1, double v2){
        BigDecimal b1 = new BigDecimal(Double.toString(v1));
        BigDecimal b2 = new BigDecimal(Double.toString(v2));
        return b1.divide(b2,2,BigDecimal.ROUND_HALF_UP); //四舍五入,保留两位数字
    }
}

原文地址:https://www.cnblogs.com/FondWang/p/12051687.html