Java.math.BigDecimal類


java.math.BigDecimal 類提供用於算術,刻度操作,捨入,比較,雜湊演算法和格式轉換操作。

toString()方法提供BigDecimal的規範表示。它使使用者可以完全控制舍入行為。

提供用於操作BigDecimal規模兩種型別的操作:
  • 縮放/捨入操作
  • 小數點移動操作。

此類及其疊代器實現Comparable介面的所有可選方法。

類宣告

以下是宣告java.math.BigDecimal類:

public class BigDecimal
    extends Number
        implements Comparable<BigDecimal>

欄位域

以下是java.math.BigDecimal類中的欄位:

  • static BigDecimal ONE -- 值為1,使用刻度為0。

  • static int ROUND_CEILING -- 捨入模式舍向正無窮。

  • static int ROUND_DOWN -- 捨入模式為向零舍入。

  • static int ROUND_FLOOR -- 捨入模式接近負無窮大。

  • static int ROUND_HALF_DOWN -- 捨入模式舍入到“最近相鄰”如果與兩個相鄰數位的距離相等,在這種情況下,向下取整。

  • static int ROUND_HALF_EVEN --  捨入模式舍對“近鄰”如果與兩個相鄰數位的距離相等,在這種情況下,捨入向著更加相鄰。

  • static int ROUND_HALF_UP -- 捨入模式舍入到“最近相鄰”如果與兩個相鄰數位的距離相等,在這種情況下範圍。

  • static int ROUND_UNNECESSARY -- 捨入模式斷言請求的操作具有精確的結果,因此不需要捨入。

  • static int ROUND_UP -- 捨入模式舍入去零。

  • static BigDecimal TEN -- 值為0,使用刻度為0。

  • static BigDecimal ZERO -- 值為0,使用刻度為0。

類建構函式

S.N. 建構函式 & 描述
1 BigDecimal(BigInteger val)
這個建構函式是用來將BigInteger轉換為BigDecimal。
2 BigDecimal(BigInteger unscaledVal, int scale)
這個建構函式用於轉換為BigInteger非標度值和一個int尺度成一個BigDecimal。
3 BigDecimal(BigInteger unscaledVal, int scale, MathContext mc)
這個建構函式用於轉換為BigInteger非標度值和一個int尺度轉換為BigDecimal,有根據上下文設定進行舍入。
4 BigDecimal(BigInteger val, MathContext mc)
此建構函式用於根據上下文設定將BigInteger轉換為BigDecimal捨入。
5 BigDecimal(char[ ] in)
此建構函式用於將BigDecimal字元陣列表示轉化為BigDecimal,接受相同的字元序列與BigDecimal(String)建構函式。
6 BigDecimal(char[ ] in, int offset, int len)
此建構函式用於將BigDecimal的字元陣列表示轉化為BigDecimal,接受字元與BigDecimal(String)構造方法相同的字元序列,同時允許指定子陣列。
7 BigDecimal(char[ ] in, int offset, int len, MathContext mc)
此建構函式用於將BigDecimal的字元陣列表示轉化為BigDecimal,接受字元與BigDecimal(String)構造方法相同的字元序列,同時允許指定子陣列,並與根據上下文設定進行舍入。
8 BigDecimal(char[ ] in, MathContext mc)
此建構函式用於將BigDecimal的字元陣列表示轉化為BigDecimal,接受相同的字元序列與BigDecimal(String)構造和根據上下文設定進行舍入。
9 BigDecimal(double val)
這個建構函式是用來轉換double為一個BigDecimal,它是雙的二進位制浮點值的精確十進位制表示。
10 BigDecimal(double val, MathContext mc)
這個建構函式是用來轉換double為一個BigDecimal,有根據上下文設定進行舍入。
11 BigDecimal(int val)
這個建構函式是用來轉換一個int轉換為BigDecimal。
12 BigDecimal(int val, MathContext mc)
這個建構函式是用來轉換一個int轉換為BigDecimal,有根據上下文設定進行舍入。
13 BigDecimal(long val)
這個建構函式用於轉換long為一個BigDecimal。
14 BigDecimal(long val, MathContext mc)
這個建構函式是將BigInteger轉換為BigDecimal。
15 BigDecimal(String val)
此建構函式用於一個BigDecimal的字串表示形式轉換為BigDecimal。
16 BigDecimal(String val, MathContext mc)
此建構函式用於將BigDecimal的字串表示形式轉換為BigDecimal,接受相同的字串作為與BigDecimal(String)構造,並根據上下文設定進行舍入。

類方法

S.N. 方法 & 描述
1 BigDecimal abs() 
此方法返回一個BigDecimal,其值是此BigDecimal的絕對值,其標度是this.scale()。
2 BigDecimal abs(MathContext mc) 
此方法返回一個BigDecimal,其值是此BigDecimal的絕對值,與根據上下文設定進行舍入。
3 BigDecimal add(BigDecimal augend)
此方法返回一個BigDecimal,其值為(this + augend),其標度為max(this.scale(), augend.scale())。
4 BigDecimal add(BigDecimal augend, MathContext mc) 
此方法返回一個BigDecimal,其值為 (this + augend),與根據上下文設定進行舍入。
5 byte byteValueExact() 
這種方法的BigDecimal轉換為一個位元組,檢查丟失的資訊。
6 int compareTo(BigDecimal val) 
這種方法比較BigDecimal與指定的BigDecimal。
7 BigDecimal divide(BigDecimal divisor)
此方法返回一個BigDecimal,其值為(this/除數),且其首選標度為(this.scale() - divisor.scale());如果準確的商不能表示(因為它有無窮的十進位制擴充套件),則丟擲ArithmeticException。 
8 BigDecimal divide(BigDecimal divisor, int roundingMode)
此方法返回一個BigDecimal,其值為(this/除數),其標度是this.scale()。
9 BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
此方法返回一個BigDecimal,其值為(this/除數),其標度如指定。
10 BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode) 
此方法返回一個BigDecimal,其值為(this/除數),其標度為指定。
11 BigDecimal divide(BigDecimal divisor, MathContext mc) 
此方法返回一個BigDecimal,其值為(this/除數),與根據上下文設定進行舍入。
12 BigDecimal divide(BigDecimal divisor, RoundingMode roundingMode)
此方法返回一個BigDecimal,其值為(this/除數),其標度是this.scale()。
13 BigDecimal[ ] divideAndRemainder(BigDecimal divisor)
這個方法返回一個包含divideToIntegralValue結果,其次是剩下的兩個運算元的結果的結果由兩個元素組成的BigDecimal陣列。
14 BigDecimal[ ] divideAndRemainder(BigDecimal divisor, MathContext mc) 
這個方法返回一個包含divideToIntegralValue的結果,隨後其餘與上根據上下文設定進行舍入計算兩個運算元的結果的結果由兩個元素組成的BigDecimal陣列。
15 BigDecimal divideToIntegralValue(BigDecimal divisor) 
此方法返回一個BigDecimal,其值為商(這/除數)的整數部分四捨五入。
16 BigDecimal divideToIntegralValue(BigDecimal divisor, MathContext mc)
此方法返回一個BigDecimal,其值是(這/除數)的整數部分。
17 double doubleValue() 
此方法將BigDecimal轉換為double。
18 boolean equals(Object x) 
這種方法比較BigDecimal與指定物件是否相等。
19 float floatValue()
這種方法將BigDecimal轉換為float。
20 int hashCode() 
此方法返回BigDecimal的雜湊程式碼。
21 int intValue()
這種方法將BigDecimal轉換為int。
22 int intValueExact()
這種方法將BigDecimal轉換為int,檢查丟失的資訊。
23 long longValue()
這種方法將BigDecimal轉換為long。
24 long longValueExact()
這種方法將BigDecimal轉換為long,檢查丟失的資訊。
25 BigDecimal max(BigDecimal val)
此方法返回此BigDecimal和val的最大值。
26 BigDecimal min(BigDecimal val)
此方法返回此BigDecimal和val的最小值。
27 BigDecimal movePointLeft(int n)
此方法返回一個BigDecimal,它等效於將該值的小數點移動n位到左邊。
28 BigDecimal movePointRight(int n) 
此方法返回一個BigDecimal,它等效於將該值的小數點移動n位到右邊。
29 BigDecimal multiply(BigDecimal multiplicand)
此方法返回一個BigDecimal,其值為(this×被乘數),其標度為(this.scale()+ multiplicand.scale())。
30 BigDecimal multiply(BigDecimal multiplicand, MathContext mc)
此方法返回一個BigDecimal,其值為(this×乘數),以根據上下文設定進行舍入。
31 BigDecimal negate()
此方法返回一個BigDecimal,其值是(+this),其標度是this.scale()。
32 BigDecimal negate(MathContext mc)
此方法返回一個BigDecimal,其值是(-this),根據上下文設定進行舍入。
33 BigDecimal plus() 
此方法返回一個BigDecimal,其值是(+this),其標度是this.scale()。
34 BigDecimal plus(MathContext mc) 
此方法返回一個BigDecimal,其值是(+this),根據上下文設定進行舍入。
35 BigDecimal pow(int n) 
此方法返回一個BigDecimal,其值是(thisn), 冪被精確計算,使其具有無限精度。
36 BigDecimal pow(int n, MathContext mc)
此方法返回一個BigDecimal,其值是 (thisn).
37 int precision() 
此方法返回此BigDecimal的精度。
38 BigDecimal remainder(BigDecimal divisor) 
此方法將BigDecimal轉換為一個byte,檢查丟失的資訊。
39 BigDecimal remainder(BigDecimal divisor, MathContext mc)
此方法返回一個BigDecimal,其值為(this%除數),根據上下文設定進行舍入。
40 BigDecimal round(MathContext mc) 
此方法返回根據MathContext設定捨入一個BigDecimal。
41 int scale() 
此方法返回此BigDecimal的標度。
42 BigDecimal scaleByPowerOfTen(int n) 
此方法返回一個BigDecimal,其數值等於 (this * 10n).
43 BigDecimal setScale(int newScale)
此方法返回一個BigDecimal,其標度為指定值,其值在數值上等於該BigDecimal。
44 BigDecimal setScale(int newScale, int roundingMode) 
此方法返回一個BigDecimal,其標度為指定值,其非標度值乘以或除以此BigDecimal的非標度值除以十的次冪,以保持其整體值決定。
45 BigDecimal setScale(int newScale, RoundingMode roundingMode) 
此方法返回一個BigDecimal,其標度為指定值,其非標度值乘以或除以此BigDecimal的非標度值除以十的次冪,以保持其整體價決定。
46 short shortValueExact()
這種方法將BigDecimal轉換為short,檢查丟失的資訊。
47 int signum()
此方法返回此BigDecimal的正負號函式。
48 BigDecimal stripTrailingZeros() 
此方法返回一個BigDecimal,它在數值上等於這一個,但與從表示形式移除所有尾部零。
49 BigDecimal subtract(BigDecimal subtrahend) 
此方法返回一個BigDecimal,其值為(this - 減數),其標度為max(this.scale(),subtrahend.scale())。
50 BigDecimal subtract(BigDecimal subtrahend, MathContext mc) 
此方法返回一個BigDecimal,其值為(this - 減數),與根據上下文設定進行舍入。
51 BigInteger toBigInteger() 
這種方法將BigDecimal轉換為BigInteger。
52 BigInteger toBigIntegerExact()
這種方法將BigDecimal轉換為BigInteger,檢查丟失的資訊。
53 String toEngineeringString() 
此方法返回此BigDecimal的字串表示形式,使用工程計數法,如果需要指數。
54 String toPlainString() 
此方法返回此BigDecimal的字串表示形式不帶指數位段。
55 String toString()
此方法返回此BigDecimal的字串表示形式,用科學記數法,如果需要指數。
56 BigDecimal ulp()
此方法返回一個ULP的此BigDecimal的大小,在最後一位的單位。
57 BigInteger unscaledValue()
此方法返回一個BigInteger,其值是此BigDecimal的非標度值。
58 static BigDecimal valueOf(double val) 
這種方法轉換double為一個BigDecimal,使用Double.toString(double)方法提供的double的規範化字串表示形式。
59 static BigDecimal valueOf(long val)
這種方法將一個long值轉換為BigDecimal帶有刻度的零值。
60 static BigDecimal valueOf(long unscaledVal, int scale)
這種方法轉換long的非標度值和一個int尺度成一個BigDecimal。