概述
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策略。
最后
以上就是傲娇鸭子为你收集整理的JAVA中BigDecimal的小数位取整策略(Rounding mode)保留小数你真的懂吗的全部内容,希望文章能够帮你解决JAVA中BigDecimal的小数位取整策略(Rounding mode)保留小数你真的懂吗所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复