项目中有很多地方需要比较两个BigDecimal类型值的大小,常规办法是通过compareTo进行比较,但是这样写会显得代码很长且容易混淆。参考java8中提供的Optional类,自己封装了一个BigDecimal比较大小的工具类。
public final class Decimal {
private final BigDecimal value;
private Decimal(BigDecimal value) {
this.value = value;
}
public static Decimal of(BigDecimal value) {
return new Decimal(value);
}
// 小于
public boolean lt(BigDecimal val) {
return value.compareTo(val) == -1;
}
// 等于
public boolean eq(BigDecimal val) {
return value.compareTo(val) == 0;
}
// 大于
public boolean gt(BigDecimal val) {
return value.compareTo(val) == 1;
}
// 大于等于
public boolean ge(BigDecimal val) {
return value.compareTo(val) > -1;
}
// 小于等于
public boolean le(BigDecimal val) {
return value.compareTo(val) < 1;
}
}
比较方法
BigDecimal a = new BigDecimal("0.02");
BigDecimal b = new BigDecimal("0.01");
boolean bool = Decimal.of(a).ge(b);