例子:
bigdecimal a = new bigdecimal("2.00");
bigdecmial b = new bigdecimal(2);
system.out.println(a.equals(b));
輸出結果是:false
原因是:bigdecimal比較時,不僅比較值,而且還比較精度???
解決方法:
bigdecimal a = new bigdecimal("2.00").setscale(2,bigdecimal.round_half_down);
bigdecmial b = new bigdecimal(2).setscale(2,bigdecimal.round_half_down);
system.out.println(a.equals(b));
結果就是:true
關於bigdecimal.round_half_up與round_half_down
round_half_up: 遇到.5的情況時往上近似,例: 1.5 ->;2
round_half_down : 遇到.5的情況時往下近似,例: 1.5 ->;1
BigDecimal的大小比較
在比較兩個bigdecimal的值是否相等時,要特別注意,使用equals 方法不但要求兩個bigdecimal的值相等,還要求它們的scale 相等 bigdecimal d1 new bigdecimal 123.456 bigdecimal d2 new bigdecimal 123.4560...
BigDecimal的大小比較
bigdecimal a new bigdecimal 101 bigdecimal b new bigdecimal 111 使用compareto方法比較 注意 a b均不能為null,否則會報空指標 if a.compareto b 1 if a.compareto b 0 if a.comp...
BigDecimal 加 減 乘 除 比較
bigdecimal 多用於商業計算,或者較大數值得計算 bigdecimal bignum1 newbigdecimal 10 bigdecimal bignum2 new bigdecimal 5 bigdecimal bignum3 null 加法 bignum3 bignum1.add bi...