BigDecimal.setScale(int newScale, int roundingMode)方法實例
java.math.BigDecimal.setScale(int newScale, int roundingMode) 返回一個BigDecimal,其精度為指定值,其非精度值乘以或除以此BigDecimal的非精度值除以10,以保持其整體值。
如果該精度是減少了操作中,未縮放的值必須被除(而不是乘),並且該值可以被改變。在這裡,指定的舍入模式應用到除法。
由於BigDecimal對象是不可變的,這個方法的調用不會導致被修改原始對象,違背了其名為setX變異字段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.yiibai; 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