概述
BigDecimal 小数舍入模式
public static void main(String[] args) {
log.info("启动");
BigDecimal num = new BigDecimal("123.4567");//255.4631取值小数点后的位数
//取值小数点后的位数
System.out.println(num.scale());//结果:4
//取值并保留一位小数,直接删除多余的小数位
System.out.println(num.setScale(1, BigDecimal.ROUND_DOWN));//结果:123.4
//取值并保留一位小数,进位处理
System.out.println(num.setScale(1, BigDecimal.ROUND_UP));//结果:123.5
num = new BigDecimal("3.45");//1.35
//取值并保留一位小数,四舍五入 向下舍
System.out.println(num.setScale(1, BigDecimal.ROUND_HALF_DOWN));//结果:3.4
//取值并保留一位小数,四舍五入 向上舍
System.out.println(num.setScale(1, BigDecimal.ROUND_HALF_UP));//结果:3.5
}
-
ROUND_CEILING //向正无穷方向舍入
-
ROUND_DOWN //向零方向舍入
-
ROUND_FLOOR //向负无穷方向舍入
-
ROUND_HALF_DOWN //向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向下舍入, 例如1.55 保留一位小数结果为1.5
-
ROUND_HALF_EVEN //向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,如果保留位数是奇数,使用ROUND_HALF_UP,如果是偶数,使用ROUND_HALF_DOWN
-
ROUND_HALF_UP //向(距离)最近的一边舍入,除非两边(的距离)是相等,如果是这样,向上舍入, 1.55保留一位小数结果为1.6
-
ROUND_UNNECESSARY //计算结果是精确的,不需要舍入模式
-
ROUND_UP //向远离0的方向舍入
-
需要对BigDecimal进行截断和四舍五入可用setScale方法,例:
public static void main(String[] args){
BigDecimal num = new BigDecimal("12.3456");
num = num .setScale(3, RoundingMode.HALF_UP);//保留3位小数,且四舍五入
System.out.println(num);//结果:12.346
}
最后
以上就是彩色睫毛为你收集整理的BigDecimal 小数舍入模式的全部内容,希望文章能够帮你解决BigDecimal 小数舍入模式所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复