- 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。 |