这个类是java里精确计算的类,下面说一下两个BigDecimal对象大小,相等的判断
1 比较对象是否相等
一般的对象用equals,但是BigDecimal比较特殊,举个例子:
BigDecimal a=BigDecimal.valueOf(1.0);
BigDecimal b=BigDecimal.valueOf(1.000);
在现实中这两个数字是相等的,但是问题来来了
a.equals(b)结果是false;怎么不相等了呢?这个问题我也不知道
解决办法:
if(a.compareTo(b)==0)结果是true
public int compareTo(BigDecimal val)
Compares this BigDecimal with the specified BigDecimal.
Two BigDecimal objects that are equal in value but have adifferent
scale (like 2.0 and 2.00) are considered equal by thismethod.
This method is provided in preference to individual methods foreach of
the six boolean comparison operators (<, ==,>, >=, !=, <=).
The suggested idiom for performing these com parisons is:(x.compareTo(y) <op> 0), where<op> is one of the six comparisonoperators.
Specifiedby:
compareTo ininterfaceComparable<BigDecimal>
Parameters:
val -BigDecimal to which this BigDecimal is to be compared.
Returns:
-1, 0, or 1 as this BigDecimal is numerically less than, equal to,or greater than val.
简单翻译:
结果是-1 小于
0 等于
1 大于