BigDecimal如何比較是否相等

2021-09-02 16:55:53 字數 597 閱讀 4424

例子:

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...