一、使用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