Java.math.BigDecimal.setScale() 方法

描述

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

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

此方法返回与 setScale 的两个参数版本相同的结果,但在不相关的情况下,调用者可以省去指定舍入模式的麻烦。

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


声明

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

public BigDecimal setScale(int newScale)

参数

newScale − 要返回的 BigDecimal 值的小数位数。


返回值

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


异常

ArithmeticException − 如果指定的缩放操作需要四舍五入。


示例

下面的例子展示了 math.BigDecimal.setScale() 方法的使用。

package com.tutorialspoint;

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