compareTo比较
概念
compareTo用于俩个值的比较,返回值是整型
A.compareTo(B)
如果A等于B,返回0
如果A小于B,返回负数
如果A大于B,返回正数
需求
判断订单金额是否大于等于0
可以使用校验@DecimalMin,也可以使用compareTo进行判断
实现
java
public void isOk(Long uid, OrderDTO orderDTO) {
if (orderDTO.getFinalTotalPrice().compareTo(new BigDecimal("0")) <= 0) {
throw new ParameterException(50011);
}
}
orderDTO.getFinalTotalPrice()获取FinalTotalPrice(总价)的值
new BigDecimal("0") 因为OrderDTO中的FinalTotalPrice格式是BigDecimal,所以需要与BigDecimal格式的0进行对比
对比返回的值如果小于等于0,说明总价不对,返回错误提示
总结
第一、俩个值的对比可以使用compareTo进行比较
第二、new BigDecimal为什么要传入Sting?
BigDecimal构造器传参时使用String不会丢失精度,使用浮点或者双精度会丢失精度。