java.math.BigDecimal.setScale(int newScale, RoundingMode roundingMode)%uA0返回一个BigDecimal,其精度为指定值,其非精度值乘以或除以此BigDecimal的非精度值除以10,以保持其整体值。
如果该精度是减少了操作,无精度的值必须被除(而不是乘),并且该值可以被改变在这种情况下,指定的舍入模式应用到除法。
由于BigDecimal对象是不可变的,这个方法的调用不会导致被修改原始对象,违背了其名为setX变异字段X方法,而不是通常的惯例,setScale返回一个对象具有适当精度返回的对象可能会或可能不会被新分配。
声明
以下是java.math.BigDecimal.setScale()方法的声明
public BigDecimal setScale(int newScale, RoundingMode roundingMode)
参数
-
newScale%uA0- 要返回BigDecimal值的精度
-
roundingMode%uA0- 舍入模式应用
返回值
此方法返回一个BigDecimal,其精度为指定值,其非精度值乘以或除以此BigDecimal的非标度值除以10,以保持其整体值。
异常
-
ArithmeticException%uA0- 如果RoundingMode== ROUND_UNNECESSARY和指定的精度操作需要四舍五入。
例子
下面的例子显示math.BigDecimal.setScale()方法的用法
package com.yiibai import java.math.* public class BigDecimalDemo { public static void main(String[] args) { // create 2 BigDecimal Objects BigDecimal bg1, bg2 bg1 = new BigDecimal("123.12678") // set scale of bg1 to 2 in bg2 using floor as rounding mode bg2 = bg1.setScale(2, RoundingMode.FLOOR) String str = bg1 + " after changing the scale to 2 and rounding is " +bg2 // print bg2 value System.out.println( str ) } }
让我们编译和运行上面的程序,这将产生以下结果:
123.12678 after changing the scale to 2 and rounding is 123.12