
- Java.math 包擴充套件
- Java.math - 列舉
- Java.math - 討論
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。 |