BigDecimal 工具類

 

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

 

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);        //直接進位
    }  
}
相關文章
相關標籤/搜索