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。