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。

广告