在电商领域,涉及到金额的遍历一般会使用 BigDecimal ,这里总结其常用的代码。
两数进行比较
比较两个金额是否相等,如 12 与 12.00,可以使用 compareTo 方法进行比较,如果返回0则相等,反之不相等。
private boolean moneyEqual(String a, String b) {
return new BigDecimal(a).compareTo(new BigDecimal(b)) == 0;
}
@Test
public void moneyEqual() {
System.out.println(new BigDecimal("12.00").compareTo(new BigDecimal("12"))); // 0
System.out.println(new BigDecimal("12.00").compareTo(new BigDecimal("12.01"))); // -1
System.out.println(new BigDecimal("12.00").compareTo(new BigDecimal("12.000"))); // 0
}
去除多余的0
new BigDecimal("12.000").stripTrailingZeros() // 12
// 将 "12.000" 转为 "12"
new BigDecimal("12.000").stripTrailingZeros().toString()