比较BigDecimal的值是否相等,必须使用compareTo()而不能使用equals()
public class BigdecimalTest {
public static void main(String[] args) {
BigDecimal a = new BigDecimal("2");
BigDecimal b = new BigDecimal("2.0");
System.out.println(a.equals(b));
System.out.println(a.compareTo(b));
}
}
输出结果:
1. false
2. 0
因为equals方法会比较值和精确度,而compareTo则会忽略精度
下面的示例演示java.math.BigDecimal.compareTo()方法的用法
public class BigdecimalTest {
public static void main(String[] args) {
BigDecimal a = new BigDecimal (101);
BigDecimal b = new BigDecimal (111);
if(a.compareTo(b) == -1){
System.out.println("a小于b");
}
if(a.compareTo(b) == 0){
System.out.println("a等于b");
}
if(a.compareTo(b) == 1){
System.out.println("a大于b");
}
if(a.compareTo(b) > -1){
System.out.println("a大于等于b");
}
if(a.compareTo(b) < 1){
System.out.println("a小于等于b");
}
}
}