java.math.BigDecimal.setScale(int newScale)%uA0返回一个BigDecimal,其精度为指定值,其值在数值上等于该BigDecimal。抛出一个ArithmeticException如果不可能。
此调用通常用于增加范围,在这种情况下,它是保证存在指定的精度的一个BigDecimal和正确的值。该调用也可以被用来降低精度,如果调用方知道BigDecimal具有足够多的零在其小数部分的端部(即,10的在其整数值的因素),以允许重新缩放而不改变其值。
此方法返回相同的结果为setScale的两个参数的版本,但保存调用者的情况下,它是无关紧要的指定舍入模式当有遇到一些麻烦。
由于BigDecimal对象是不可变的,这个方法的调用不会导致被修改原始对象,违背了其名为setX变异字段X方法,而不是通常的惯例,setScale返回一个对象具有适当精度返回的对象可能会或可能不会被新分配
声明
以下是java.math.BigDecimal.setScale()方法的声明
public BigDecimal setScale(int newScale)
参数
-
newScale%uA0- 要返回BigDecimal值的精度
返回值
此方法返回一个BigDecimal,其标度为指定值,其非标度值乘以或除以此BigDecimal的非标度值除以10,以保持其整体值。
异常
-
ArithmeticException%uA0- 如果指定精度操作,需要舍入
例子
下面的例子显示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.126") // set scale of bg1 to 6 in bg2 bg2 = bg1.setScale(6) String str = "The value of " +bg1+ " after changing the scale to 6 is " +bg2 // print bg2 value System.out.println( str ) } }
让我们来编译和运行上面的程序,这将产生以下结果:
The value of 123.126 after changing the scale to 6 is 123.126000