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) 构造函数相同的字符序列,同时允许指定子数组并根据上下文设置进行舍入。< /p> |
8 | BigDecimal(char[ ] in, MathContext mc) 此构造函数用于将 BigDecimal 的字符数组表示形式转换为 BigDecimal,接受与 BigDecimal(String) 构造函数相同的字符序列,并根据上下文设置进行舍入。 |
9 | BigDecimal(double val) 此构造函数用于将 double 转换为 BigDecimal,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),其 scale 为 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 / divisor),其首选比例为 (this.scale() - divisor.scale()); 如果无法表示确切的商(因为它具有非终止的十进制扩展),则会引发 ArithmeticException。 |
8 | BigDecimal 除数(BigDecimal divisor, int roundingMode)
此方法返回一个 BigDecimal,其值为 (this / divisor),其刻度为 this.scale()。 |
9 | BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
此方法返回一个 BigDecimal,其值为 (this / divisor),其比例为指定的。 |
10 | BigDecimal 除法(BigDecimal divisor, int scale, RoundingMode roundingMode)
此方法返回一个 BigDecimal,其值为 (this / divisor),其比例为指定的。 |
11 | BigDecimal divide(BigDecimal divisor, MathContext mc)
该方法返回一个 BigDecimal,其值为 (this / divisor),根据上下文设置进行四舍五入。 |
12 | BigDecimal 除数(BigDecimal divisor, RoundingMode roundingMode)
此方法返回一个 BigDecimal,其值为 (this / divisor),其刻度为 this.scale()。 |
13 | BigDecimal[ ] divideAndRemainder(BigDecimal divisor)
此方法返回一个二元素 BigDecimal 数组,其中包含 divideToIntegralValue 的结果以及两个操作数的余数结果。 |
14 | BigDecimal[ ] divideAndRemainder(BigDecimal divisor, MathContext mc)
此方法返回一个二元素 BigDecimal 数组,其中包含 divideToIntegralValue 的结果,后跟根据上下文设置通过舍入计算的两个操作数的余数结果。 |
15 | BigDecimal divideToIntegralValue(BigDecimal divisor)
此方法返回一个 BigDecimal,其值为四舍五入的商(this / divisor)的整数部分。 |
16 | BigDecimal divideToIntegralValue(BigDecimal divisor, MathContext mc)
此方法返回一个 BigDecimal,其值为 (this / divisor) 的整数部分。 |
17 | double doubleValue()
此方法将 BigDecimal 转换为 double。 |
18 | 布尔等于(对象 x)
此方法比较 BigDecimal 和指定的 Object 是否相等。 |
19 | float floatValue()
此方法将 BigDecimal 转换为浮点数。 |
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 × multiplicand),其刻度为 (this.scale() + multiplicand.scale())。 |
30 | BigDecimal multiply(BigDecimal multiplicand, MathContext mc)
此方法返回一个 BigDecimal,其值为 (this × multiplicand),根据上下文设置进行舍入。 |
31 | BigDecimal negate()
此方法返回一个 BigDecimal,其值为 (+this),其刻度为 this.scale()。 |
32 | BigDecimal 否定(MathContext mc)
此方法返回一个 BigDecimal,其值为 (-this),根据上下文设置进行舍入。 |
33 | BigDecimal plus()
此方法返回一个 BigDecimal,其值为 (+this),其刻度为 this.scale()。 |
34 | BigDecimal plus(MathContext mc)
此方法返回一个值为 (+this) 的 BigDecimal,并根据上下文设置进行舍入。 |
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 转换为字节,检查丢失的信息。 |
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,其标度为指定值,其未标度值通过将此 BigDecimal 的未标度值乘以或除以适当的 10 次方来确定,以保持其整体值。 |
45 | BigDecimal setScale(int newScale, RoundingMode roundingMode)
此方法返回一个 BigDecimal,其标度为指定值,其未标度值通过将此 BigDecimal 的未标度值乘以或除以适当的 10 次方来确定,以保持其整体值。 |
46 | short shortValueExact()
此方法将 BigDecimal 转换为 short,检查丢失的信息。 |
47 | int signum()
此方法返回此 BigDecimal 的符号函数。 |
48 | BigDecimal stripTrailingZeros()
此方法返回一个 BigDecimal,它在数值上等于这个值,但从表示中删除了任何尾随零。 |
49 | BigDecimal subtrahend(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)
此方法将 long 值转换为比例为零的 BigDecimal。 |
60 | static BigDecimal valueOf(long unscaledVal, int scale)
此方法将 long unscaled value 和 int scale 转换为 BigDecimal。 |