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比较大小

猜你喜欢

转载自blog.csdn.net/yexiaomodemo/article/details/105870390
今日推荐