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.yiibai;

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