BigDecimal.setScale方法的功能简介说明
下文笔者讲述BigDecimal.setScale方法的功能简介说明,如下所示
BigDecimal.setScale方法的功能
BigDecimal.setScale的功能: 对BigDecimal数据小数点后的位数进行 进位、舍位、截断等操作例;
1.会造成精度损失 BigDecimal num1 = new BigDecimal(2.222222); 2.不会损失精度 BigDecimal num2 = new BigDecimal(2); 3.使用字符串格式构造 不会损失精度 BigDecimal num = new BigDecimal("2.222222"); BigDecimal Rounding Modes 1. ROUND_UP = 0 BigDecimal b = new BigDecimal("2.222222").setScale(2, BigDecimal.ROUND_UP); System.out.println(b); //2.23 进位处理,不管后面数字的大小 2. ROUND_DOWN = 1 BigDecimal b = new BigDecimal("2.222222").setScale(2, BigDecimal.ROUND_DOWN); System.out.println(b); //2.22 去掉多余的位数,不管后面数字的大小 3. ROUND_CEILING = 2 BigDecimal b = new BigDecimal("2.222222").setScale(2, BigDecimal.ROUND_CEILING); System.out.println(b);//2.23 如果是正数,相当于BigDecimal.ROUND_UP BigDecimal b = new BigDecimal("-2.222222").setScale(2, BigDecimal.ROUND_CEILING); System.out.println(b);//-2.22 如果是负数,相当于BigDecimal.ROUND_DOWN 4. ROUND_FLOOR = 3 BigDecimal b = new BigDecimal("2.222222").setScale(2, BigDecimal.ROUND_FLOOR); System.out.println(b);//2.22 如果是正数,相当于BigDecimal.ROUND_DOWN BigDecimal b = new BigDecimal("-2.222222").setScale(2, BigDecimal.ROUND_FLOOR); System.out.println(b);//-2.23 如果是负数,相当于BigDecimal.ROUND_HALF_UP 5. ROUND_HALF_UP = 4 BigDecimal b = new BigDecimal("2.222222").setScale(2, BigDecimal.ROUND_HALF_UP); System.out.println("ROUND_HALF_UP" + b); //2.22 根据后面的数字四舍五入(大于等于 5进位) 6. ROUND_HALF_DOWN = 5 BigDecimal b = new BigDecimal("2.222222").setScale(2, BigDecimal.ROUND_HALF_DOWN); System.out.println("ROUND_HALF_DOWN" + b);//2.22 根据后面的数字四舍五入(大于 5进位) 7. ROUND_HALF_EVEN = 6 BigDecimal b = new BigDecimal("2.222222").setScale(2, BigDecimal.ROUND_HALF_EVEN); System.out.println(b);//2.22 如果舍弃部分左边的数字为偶数,则作 ROUND_HALF_DOWN BigDecimal b = new BigDecimal("2.222222").setScale(2, BigDecimal.ROUND_HALF_EVEN); System.out.println(b);//2.22 如果舍弃部分左边的数字为奇数,则作 ROUND_HALF_UP 8. ROUND_UNNECESSARY = 7 BigDecimal b = new BigDecimal("2.22").setScale(3, BigDecimal.ROUND_UNNECESSARY); System.out.println(b); // Scale位数 必须小于等于 小数位数,否则会抛异常 java.lang.ArithmeticException: Rounding necessary
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。