Java.math.BigDecimal.setScale() 方法



说明

**java.math.BigDecimal.setScale(int newScale)** 返回一个 BigDecimal,其 scale 为指定值,且其值在数值上等于此 BigDecimal 的值。如果这是不可行的,将引发 ArithmeticException。

此调用通常用于增加 scale,在这种情况有保证存在一个指定 scale 和正确值的 BigDecimal。如果调用者知道 BigDecimal 的小数部分末尾有足够多的零(即其整数值中的十的因子)以允许重新调整大小而不更改其值,则也可以使用此调用来减小 scale。

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

由于 BigDecimal 对象是不可变的,因此调用此方法不会导致原始对象被修改,这与具名 setX 的方法会改变字段 X 的通常约定相反。相反,setScale 返回一个具有正确 scale 的对象;返回的对象可能是新分配的,也可能不是

声明

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

public BigDecimal setScale(int newScale)

参数

newScale − 要返回的 BigDecimal 值的 scale。

返回值

此方法返回一个 BigDecimal,其 scale 为指定值,且其非缩放值通过将此 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
java_math_bigdecimal.htm
广告