当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Java Java.math.BigDecimal.setScale()用法及代码示例



描述

这个java.math.BigDecimal.setScale(int newScale, int roundingMode)返回一个 BigDecimal,它的标度是指定的值,其未标定值是通过将此 BigDecimal 的未标定值乘以或除以适当的 10 次幂来确定的,以保持其整体值。

如果通过操作缩小了比例,则必须对未缩放的值进行除法(而不是相乘),并且可能会更改该值。这里,指定的舍入模式应用于除法。

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

声明

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

public BigDecimal setScale(int newScale, int roundingMode)

参数

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

  • roundingMode- 要应用的舍入模式。

返回值

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

异常

  • ArithmeticException− 如果 roundingMode == ROUND_UNNECESSARY 并且指定的缩放操作需要舍入。

  • IllegalArgumentException− 如果 roundingMode 不代表有效的舍入模式。

示例

下面的例子展示了 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.12678");

      // set scale of bg1 to 2 in bg2
      // 0 specifies ROUND_UP
      bg2 = bg1.setScale(2, 0);

      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.13

相关用法


注:本文由纯净天空筛选整理自 Java.math.BigDecimal.setScale() Method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。