- Java.math 包扩展信息
- Java.math - 枚举
- Java.math - 讨论
Java.math.BigDecimal.setScale() 方法
说明
java.math.BigDecimal.setScale(int newScale, int roundingMode) 返回一个 BigDecimal,该 BigDecimal 的比例是指定值,其未缩放值通过将此 BigDecimal 的未缩放值乘以或除以适当的 10 的次幂来确定,以维持其整体值。
如果比例通过该操作减少,则必须除以(而不是乘以)未缩放值,并且值可能被更改。在此,指定的舍入模式应用于除法。
由于 BigDecimal 对象不可变,此方法的调用不会导致修改原始对象,这与因命名为 setX 而改变字段 X 的方法的一般惯例相反。相反,setScale 返回具有适当比例的对象;返回的对象可能已分配,也可能未分配。
声明
以下是 java.math.BigDecimal.setScale() 方法的声明。
public BigDecimal setScale(int newScale, int roundingMode)
参数
newScale − 要返回的 BigDecimal 值的比例。
roundingMode − 要应用的舍入模式。
返回值
此方法返回一个 BigDecimal,该 BigDecimal 的比例是指定值,其未缩放值通过将此 BigDecimal 的未缩放值乘以或除以适当的 10 的次幂来确定,以维持其整体值。
异常
ArithmeticException − 如果 roundingMode == ROUND_UNNECESSARY 并且指定的缩放操作需要舍入。
IllegalArgumentException − 如果 roundingMode 不表示有效的舍入模式。
示例
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
让我们编译并运行上述程序,这将产生以下结果 −
打印页面