JAVA中BigDecimal的小数位取整策略(Rounding mode)保留小数你真的懂吗

ROUND_DOWN 

直接舍去后面的小数

例如:new BigDecimal("1.12087").setScale(3,BigDecimal.ROUND_DOWN); -> 1.120

ROUND_UP 

直接舍去后面的小数位,同时保留小数位的最后一位+1)

例:new BigDecimal("1.12087").setScale(3,BigDecimal.ROUND_UP); -> 1.121

 

ROUND_HALF_UP

 常说的四舍五入,当舍弃部分大于等于>=0.5时进一位,否则舍弃

ROUND_HALF_DOWN  

四舍五入,与ROUND_HALF_DOWN的唯一区别是 >0.5(注意不包含等于)例:

new BigDecimal("0.1250").setScale(2,BigDecimal.ROUND_HALF_DOWN);  ->0.12

new BigDecimal("0.1251").setScale(2,BigDecimal.ROUND_HALF_DOWN);  ->0.13

 

ROUDN_HALF_EVEN

如果舍弃部分的左边是奇数,按照ROUND_HALF_UP策略;如果舍弃部分的左边是偶数,按照ROUND_HALF_DOWN策略。(较少使用,不举例了)

 

ROUND_UNNECESSARY 

当小数的真实位数与指定的位数不相同时将抛出异常,既要求精确计算,不能做取舍。(几乎使用不到)

 

ROUND_CEILING

当是正数时,采用ROUND_UP策略;当是负数时,采用ROUND_DOWN策略

ROUND_FLOOR

与ROUND_CEILING相反,当是正数时采用ROUND_DOWN;当是负数时采用ROUND_UP策略。

 

 

 

  • 4
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值