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 - 值為 10,比例為 0。

  • static BigDecimal ZERO - 值為 0,比例為 0。

類建構函式

序號 建構函式和說明
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,它是 double 的二進位制浮點值的精確十進位制表示。

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) 建構函式相同的字串,並根據上下文設定進行舍入。

類方法

序號 方法和說明
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 轉換為 byte,並檢查資訊丟失。

6 int compareTo(BigDecimal val)

此方法將 BigDecimal 與指定的 BigDecimal 進行比較。

7 BigDecimal divide(BigDecimal divisor)

此方法返回一個 BigDecimal,其值為 (this / divisor),其首選比例為 (this.scale() - divisor.scale());如果無法表示精確商(因為它具有無限小數展開),則會丟擲 ArithmeticException。

8 BigDecimal divide(BigDecimal divisor, int roundingMode)

此方法返回一個 BigDecimal,其值為 (this / divisor),其比例為 this.scale()。

9 BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

此方法返回一個 BigDecimal,其值為 (this / divisor),其比例如指定。

10 BigDecimal divide(BigDecimal divisor, int scale, RoundingMode roundingMode)

此方法返回一個 BigDecimal,其值為 (this / divisor),其比例如指定。

11 BigDecimal divide(BigDecimal divisor, MathContext mc)

此方法返回一個 BigDecimal,其值為 (this / divisor),並根據上下文設定進行舍入。

12 BigDecimal divide(BigDecimal divisor, RoundingMode roundingMode)

此方法返回一個 BigDecimal,其值為 (this / divisor),其比例為 this.scale()。

13 BigDecimal[ ] divideAndRemainder(BigDecimal divisor)

此方法返回一個包含 divideToIntegralValue 結果後跟兩個運算元的 remainder 結果的兩個元素 BigDecimal 陣列。

14 BigDecimal[ ] divideAndRemainder(BigDecimal divisor, MathContext mc)

此方法返回一個包含 divideToIntegralValue 結果後跟兩個運算元的 remainder 結果的兩個元素 BigDecimal 陣列,並根據上下文設定進行舍入計算。

15 BigDecimal divideToIntegralValue(BigDecimal divisor)

此方法返回一個 BigDecimal,其值為商 (this / divisor) 的整數部分,向下舍入。

16 BigDecimal divideToIntegralValue(BigDecimal divisor, MathContext mc)

此方法返回一個 BigDecimal,其值為 (this / divisor) 的整數部分。

17 double doubleValue()

此方法將 BigDecimal 轉換為 double。

18 boolean equals(Object x)

此方法將 BigDecimal 與指定的 Object 進行相等性比較。

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 位的此 BigDecimal。

28 BigDecimal movePointRight(int n)

此方法返回一個 BigDecimal,它等效於將小數點向右移動 n 位的此 BigDecimal。

29 BigDecimal multiply(BigDecimal multiplicand)

此方法返回一個 BigDecimal,其值為 (this × multiplicand),其比例為 (this.scale() + multiplicand.scale())。

30 BigDecimal multiply(BigDecimal multiplicand, MathContext mc)

此方法返回一個 BigDecimal,其值為 (this × multiplicand),並根據上下文設定進行舍入。

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 % divisor),並根據上下文設定進行舍入。

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,其標度為指定值,其未縮放值透過乘以或除以適當的十的冪來確定,以保持其整體值。

45 BigDecimal setScale(int newScale, RoundingMode roundingMode)

此方法返回一個BigDecimal,其標度為指定值,其未縮放值透過乘以或除以適當的十的冪來確定,以保持其整體值。

46 short shortValueExact()

此方法將BigDecimal轉換為short,並檢查資訊丟失情況。

47 int signum()

此方法返回此BigDecimal的符號函式。

48 BigDecimal stripTrailingZeros()

此方法返回一個BigDecimal,其數值與當前BigDecimal相等,但去除了表示中的任何尾隨零。

49 BigDecimal subtract(BigDecimal subtrahend)

此方法返回一個BigDecimal,其值為(this - subtrahend),其標度為max(this.scale(), subtrahend.scale())。

50 BigDecimal subtract(BigDecimal subtrahend, MathContext mc)

此方法返回一個BigDecimal,其值為(this - subtrahend),並根據上下文設定進行舍入。

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()

此方法返回此BigDecimal的ulp(最後一位單位)的大小。

57 BigInteger unscaledValue()

此方法返回一個BigInteger,其值為此BigDecimal的未縮放值。

58 static BigDecimal valueOf(double val)

此方法使用Double.toString(double)方法提供的double的規範字符串表示形式將double轉換為BigDecimal。

59 static BigDecimal valueOf(long val)

此方法將長整型值轉換為標度為零的BigDecimal。

60 static BigDecimal valueOf(long unscaledVal, int scale)

此方法將長整型未縮放值和整型標度轉換為BigDecimal。

廣告