BigDecimal 使用compareTo比較大小

1.BigDecimal的比較模式 

BigDecimal b1 = new BigDecimal(0.1);
BigDecimal b2 = new BigDecimal(0.2);
int c = b1.compareTo(b2);  // -1

c=1表示b1大於b2
c=0表示b1等於b2
c=-1表示b1小於b2

2.BigDecimal的round模式

BigDecimal.ROUND_UP
無條件進1,1.01 ->1.1
BigDecimal.ROUND_DOWN
無條件捨棄,1.09 -> 1.0
BigDecimal.ROUND_HALF_UP
四捨五入
BigDecimal.ROUND_HALF_DOWN
五舍六入,即捨棄部分大於等於6纔會進1
BigDecimal.ROUND_CEILING
向正無窮方向捨棄,1.01  -> 1.1
BigDecimal.ROUND_FLOOR
向負無窮方向捨棄,1.09  -> 1.0
BigDecimal.ROUND_HALF_EVEN
當捨棄部分的左邊是奇數時,表現同ROUND_HALF_UP(四捨五入)  
當捨棄部分的左邊是偶數時,表現同ROUND_HALF_DOWN(五舍六入)
BigDecimal.ROUND_UNNECESSARY
Assert操作,證明計算是準確的,不需要round
System.out.println(new BigDecimal(1.25).setScale(1, BigDecimal.ROUND_HALF_UP).setScale(1, BigDecimal.ROUND_UNNECESSARY));

本文部分轉載自:BigDecimal compareTo比較大小

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章