BigDecimal setScale(int newScale)

优质
小牛编辑
135浏览
2023-12-01

描述 (Description)

java.math.BigDecimal.setScale(int newScale)返回一个BigDecimal,其标度是指定值,其值在数值上等于此BigDecimal。 如果不可能,则抛出ArithmeticException。

此调用通常用于增加比例,在这种情况下,可以保证存在指定比例的BigDecimal和正确的值。 如果调用者知道BigDecimal在其小数部分的末尾具有足够多的零(即,其整数值为10的因子)以允许重新缩放而不改变其值,则该调用也可用于减小比例。

此方法返回与setScale的双参数版本相同的结果,但在调用者无关紧要的情况下保存指定舍入模式的麻烦。

由于BigDecimal对象是不可变的,因此调用此方法不会导致原始对象被修改,这与通常使用名为setX mutate field X的方法相反。相反,setScale返回具有适当比例的对象; 返回的对象可能会或可能不会被新分配

声明 (Declaration)

以下是java.math.BigDecimal.setScale()方法的声明。

public BigDecimal setScale(int newScale)

参数 (Parameters)

newScale - 要返回的BigDecimal值的比例。

返回值 (Return Value)

此方法返回一个BigDecimal,其标度为指定值,其未缩放值是通过将此BigDecimal的非标度值乘以或除以适当的10的幂来确定的,以保持其整体值

异常 (Exception)

ArithmeticException - 如果指定的缩放操作需要舍入。

例子 (Example)

以下示例显示了math.BigDecimal.setScale()方法的用法。

package cn.xnip;
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