BigDecimal 工具类

arg1.compareTo(arg2)
arg1 > arg2 返回 int 1
arg1 = arg2 返回 int 0
arg1 < arg2 返回 int -1

public class BigDecimalUtli {
    
    private static final BigDecimal zero = new BigDecimal("0");
    
    /** arg1 + arg2
     * @param arg1
     * @param arg2
     * @return
     */
    public static BigDecimal add(BigDecimal arg1,BigDecimal arg2){
        return arg1.add(arg2);
    }
    
    /** arg1 - arg2
     * @param arg1
     * @param arg2
     * @return
     */
    public static BigDecimal subtract(BigDecimal arg1,BigDecimal arg2){
        return arg1.subtract(arg2);
    }
    
    /** arg1 * arg2
     * @param arg1
     * @param arg2
     * @return
     */
    public static BigDecimal multiply(BigDecimal arg1,BigDecimal arg2){
        return arg1.multiply(arg2);
    }
    
    /** arg1 / arg2
     * 默认保留两位小数,四舍五入
     * @param arg1
     * @param arg2
     * @return
     */
    public static BigDecimal divide(BigDecimal arg1,BigDecimal arg2){
        if(arg2.compareTo(zero) == 0){
            return new BigDecimal("0.00");
        }
        return arg1.divide(arg2,2,BigDecimal.ROUND_HALF_UP);
    }
    
    /** 格式化小数,保留两位小数,舍入根据模式判断
     * @param arg1
     * @return
     */
    public static BigDecimal setScale(BigDecimal arg1){
        return arg1.setScale(2,BigDecimal.ROUND_HALF_UP);    //四舍五入 
//        return arg1.setScale(2,BigDecimal.ROUND_HALF_DOWN);    //五舍六入
//        return arg1.setScale(2,BigDecimal.ROUND_DOWN);        //直接删除多余的小数位 
//        return arg1.setScale(2,BigDecimal.ROUND_UP);        //直接进位
    }  
}
原文地址:https://www.cnblogs.com/MIC2016/p/8423435.html