BigDecimal比较大小
一、使用compareTo方法比较
compareTo方法会返回三种结果,分别是-1,0,1。-1表示当前对象小于比较对象,0表示两者相等,1表示当前对象大于比较对象。
BigDecimal bd1 = new BigDecimal("0.01"); BigDecimal bd2 = new BigDecimal("0.02"); int result = bd1.compareTo(bd2); // result is -1
二、使用equals方法比较
equals方法不仅仅会比较数值的大小,还会比较两者的精度。
也就是说,即使两个BigDecimal数值相等,但是精度不同,equals方法还是会返回false。
BigDecimal bd1 = new BigDecimal("0.1"); BigDecimal bd2 = new BigDecimal("0.10"); boolean isEqual = bd1.equals(bd2); // isEqual is false
三、使用min和max方法比较
min和max方法用于比较并返回两个BigDecimal中的最小值和最大值。
这两个方法在需要对一组BigDecimal数值进行排序时非常有用。
BigDecimal bd1 = new BigDecimal("0.01"); BigDecimal bd2 = new BigDecimal("0.02"); BigDecimal min = bd1.min(bd2); // min is 0.01 BigDecimal max = bd1.max(bd2); // max is 0.02