【工具類】BigDecimal常用功能

一些常見的功能的工具類彙總:

  1. 比較大小;
  2. 加減乘除;
  3. 轉化成百分比;
  4. 保留兩位小數
import java.math.BigDecimal;
import java.math.RoundingMode;

public abstract class BigDecimalUtils {
    /**
     * a < b
     */
    public static boolean lessThan(BigDecimal a, BigDecimal b) {
        return a.compareTo(b) == -1;
    }

    /**
     * a == b
     */
    public static boolean equalsThan(BigDecimal a, BigDecimal b) {
        return a.compareTo(b) == 0;
    }

    /**
     * a > b
     */
    public static boolean greaterThan(BigDecimal a, BigDecimal b) {
        return a.compareTo(b) == 1;
    }

    /**
     * a >= b
     */
    public static boolean greaterEqualsThan(BigDecimal a, BigDecimal b) {
        return a.compareTo(b) > -1;
    }

    /**
     * a <= b
     */
    public static boolean lessEqualsThan(BigDecimal a, BigDecimal b) {
        return a.compareTo(b) < 1;
    }

    /**
     * a + b
     */
    public static BigDecimal add(BigDecimal a, BigDecimal b) {
        return a.add(b);
    }

    /**
     * a - b
     */
    public static BigDecimal subtract(BigDecimal a, BigDecimal b) {
        return a.subtract(b);
    }

    /**
     * a * b
     */
    public static BigDecimal multiply(BigDecimal a, BigDecimal b) {
        return a.multiply(b);
    }

    /**
     * a / b
     *
     * @return 保留兩位小數
     */
    public static BigDecimal divide(BigDecimal a, BigDecimal b) {
        return a.divide(b, 2, RoundingMode.HALF_UP);
    }

    /**
     * a/b * 100
     *
     * @return 保留兩位小數的百分比
     */
    public static BigDecimal divide2Percentage(BigDecimal a, BigDecimal b) {
        return a.divide(b, 4, RoundingMode.HALF_UP).multiply(BigDecimal.valueOf(100))
                .divide(BigDecimal.valueOf(1), 2, RoundingMode.HALF_UP);
    }

    /**
     * a * 100%
     *
     * @return 保留兩位小數
     */
    public static BigDecimal toPercentage(BigDecimal a) {
        return a.multiply(BigDecimal.valueOf(100)).divide(BigDecimal.valueOf(1), 2, RoundingMode.HALF_UP);
    }

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章