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