BigDecimal对象比较大小
比较对象是否相等
一般的对象用equals,见 java equals() 方法总结,Object 的 equals() 方法是比较两个对象的内存地址是否相等,即若 object1.equals(object2) 为 true,则表示 equals1 和 equals2 实际上是引用同一个对象。虽然有时候 Object 的 equals() 方法可以满足我们一些基本的要求,但是我们必须要清楚我们很大部分时间都是进行两个对象的比较,这个时候 Object 的 equals() 方法就不可以了,实际上 JDK 中,String、Math 等封装类都对 equals() 方法进行了重写。
但是BigDecimal比较特殊,举个例子:
import java.math.BigDecimal;
class test0 {
public static final DecimalFormat df1 = new DecimalFormat("0.0");
public static void main(String[] args) {
//test BigDecimal 对象比较大小
BigDecimal x = new BigDecimal("1");
BigDecimal y = new BigDecimal("1.00");
System.out.println("x.equals(y):" + x.equals(y));
System.out.println("x.compareTo(y):" + (x.compareTo(y) == 0 ? "true": "false"));
}
//结果
x.equals(y):false
x.compareTo(y):true
查找java文档关于compareTo()和equals()方法说明:
还没有评论,来说两句吧...