BigDecimal
介绍 (Introduction)
java.math.BigDecimal类提供算术,缩放操作,舍入,比较,散列和格式转换的操作。
toString()方法提供了BigDecimal的规范表示。 它使用户可以完全控制舍入行为。
提供了两种类型的操作来操作BigDecimal的比例 -
- 缩放/舍入操作
- 小数点运动操作
此类及其迭代器实现Comparable接口的所有可选方法。
类声明
以下是java.math.BigDecimal类的声明 -
public class BigDecimal
extends Number
implements Comparable<BigDecimal>
字段 (Field)
以下是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 int ROUND_UP舍入。
static BigDecimal TEN - 值10,标度为0。
static BigDecimal ZERO - 值0,标度为0。
类构造函数
Sr.No. | 构造函数和描述 |
---|---|
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,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)构造函数相同的字符串,并根据上下文设置进行舍入。 |
类方法
Sr.No. | 方法和描述 |
---|---|
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/divisor),其首选比例为(this.scale() - divisor.scale()); 如果无法表示精确的商(因为它具有非终止的十进制扩展),则抛出ArithmeticException。 |
8 | BigDecimal除(BigDecimal divisor,int roundingMode) 此方法返回一个BigDecimal,其值为(this/divisor),其标度为this.scale()。 |
9 | BigDecimal除(BigDecimal divisor,int scale,int roundingMode) 此方法返回一个BigDecimal,其值为(this/divisor),其标度为指定的。 |
10 | BigDecimal除(BigDecimal divisor,int scale,RoundingMode roundingMode) 此方法返回一个BigDecimal,其值为(this/divisor),其标度为指定的。 |
11 | BigDecimal除(BigDecimal divisor,MathContext mc) 此方法返回一个BigDecimal,其值为(this/divisor),并根据上下文设置进行舍入。 |
12 | BigDecimal除(BigDecimal divisor,RoundingMode roundingMode) 此方法返回一个BigDecimal,其值为(this/divisor),其标度为this.scale()。 |
13 | BigDecimal [] divideAndRemainder(BigDecimal divisor) 此方法返回一个包含divideToIntegralValue结果的两元素BigDecimal数组,后跟两个操作数上的余数结果。 |
14 | BigDecimal [] divideAndRemainder(BigDecimal divisor,MathContext mc) 此方法返回一个包含divideToIntegralValue结果的双元素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乘法(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) 此方法返回一个BigDecimal,其值为(+ this),并根据上下文设置进行舍入。 |
35 | BigDecimal pow(int n) 此方法返回一个BigDecimal,其值为(此n ),精确计算功率,达到无限精度。 |
36 | BigDecimal pow(int n,MathContext mc) 此方法返回一个BigDecimal,其值为(this n )。 |
37 | int precision() 此方法返回此BigDecimal的精度。 |
38 | BigDecimal remainder(BigDecimal divisor) 此方法将此BigDecimal转换为一个字节,检查丢失的信息。 |
39 | BigDecimal余数(BigDecimal divisor,MathContext mc) 此方法返回一个BigDecimal,其值为(此%divisor),并根据上下文设置进行舍入。 |
40 | BigDecimal round(MathContext mc) 此方法根据MathContext设置返回舍入的BigDecimal。 |
41 | int scale() 此方法返回此BigDecimal的比例。 |
42 | BigDecimal scaleByPowerOfTen(int n) 此方法返回一个BigDecimal,其数值等于(this * 10 n )。 |
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的signum函数。 |
48 | BigDecimal stripTrailingZeros() 此方法返回一个BigDecimal,它在数值上等于此值,但从表示中删除了任何尾随零。 |
49 | BigDecimal减法(BigDecimal subtrahend) 此方法返回一个BigDecimal,其值为(this - subtrahend),其标度为max(this.scale(),subtrahend.scale())。 |
50 | BigDecimal减法(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) 此方法将长的未缩放值和int缩放转换为BigDecimal。 |