手册
目录
收藏654
分享
阅读808
更新时间2025-07-22
前言:
在本教程中,您将学习如何使用Java.math.BigDecimal类,简介java.math.BigDecimal类提供算术、比例操作、舍入、比较、散列和格式转换的操作。toString()方法提供了BigDecimal的规范表示。它使用户可以完全控制舍入行为。
java.math.BigDecimal 类提供算术、比例操作、舍入、比较、散列和格式转换的操作。
toString() 方法提供了 BigDecimal 的规范表示。 它使用户可以完全控制舍入行为。
提供了两种类型的操作来操纵 BigDecimal 的比例 −
此类及其迭代器实现了 Comparable 接口的所有可选方法。
以下是 java.math.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。 |
相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.2万人学习
共49课时
77万人学习
共29课时
61.7万人学习
共25课时
39.3万人学习
共43课时
70.9万人学习
共25课时
61.6万人学习
共22课时
23万人学习
共28课时
33.9万人学习
共89课时
125万人学习