BigDecimal

优质
小牛编辑
133浏览
2023-12-01

介绍 (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.方法和描述
1BigDecimal abs()

此方法返回一个BigDecimal,其值是此BigDecimal的绝对值,其标度为this.scale()。

2BigDecimal abs(MathContext mc)

此方法返回一个BigDecimal,其值为此BigDecimal的绝对值,并根据上下文设置进行舍入。

3BigDecimal add(BigDecimal augend)

此方法返回一个BigDecimal,其值为(this + augend),其比例为max(this.scale(),augend.scale())。

4BigDecimal add(BigDecimal augend,MathContext mc)

此方法返回一个BigDecimal,其值为(this + augend),并根据上下文设置进行舍入。

5byte byteValueExact()

此方法将BigDecimal转换为一个字节,检查丢失的信息。

6int compareTo(BigDecimal val)

此方法将BigDecimal与指定的BigDecimal进行比较。

7BigDecimal divide(BigDecimal divisor)

此方法返回一个BigDecimal,其值为(this/divisor),其首选比例为(this.scale() - divisor.scale()); 如果无法表示精确的商(因为它具有非终止的十进制扩展),则抛出ArithmeticException。

8BigDecimal除(BigDecimal divisor,int roundingMode)

此方法返回一个BigDecimal,其值为(this/divisor),其标度为this.scale()。

9BigDecimal除(BigDecimal divisor,int scale,int roundingMode)

此方法返回一个BigDecimal,其值为(this/divisor),其标度为指定的。

10BigDecimal除(BigDecimal divisor,int scale,RoundingMode roundingMode)

此方法返回一个BigDecimal,其值为(this/divisor),其标度为指定的。

11BigDecimal除(BigDecimal divisor,MathContext mc)

此方法返回一个BigDecimal,其值为(this/divisor),并根据上下文设置进行舍入。

12BigDecimal除(BigDecimal divisor,RoundingMode roundingMode)

此方法返回一个BigDecimal,其值为(this/divisor),其标度为this.scale()。

13BigDecimal [] divideAndRemainder(BigDecimal divisor)

此方法返回一个包含divideToIntegralValue结果的两元素BigDecimal数组,后跟两个操作数上的余数结果。

14BigDecimal [] divideAndRemainder(BigDecimal divisor,MathContext mc)

此方法返回一个包含divideToIntegralValue结果的双元素BigDecimal数组,后跟根据上下文设置使用舍入计算的两个操作数上的余数结果。

15BigDecimal divideToIntegralValue(BigDecimal divisor)

此方法返回一个BigDecimal,其值是向下舍入的商(this/divisor)的整数部分。

16BigDecimal divideToIntegralValue(BigDecimal divisor,MathContext mc)

此方法返回一个BigDecimal,其值是(this/divisor)的整数部分。

17double doubleValue()

此方法将BigDecimal转换为double。

18boolean equals(Object x)

此方法将BigDecimal与指定的Object进行相等性比较。

19float floatValue()

此方法将BigDecimal转换为float。

20int hashCode()

此方法返回此BigDecimal的哈希码。

21int intValue()

此方法将BigDecimal转换为int。

22int intValueExact()

此方法将BigDecimal转换为int,检查丢失的信息。

23long longValue()

此方法将BigDecimal转换为long。

24long longValueExact()

此方法将BigDecimal转换为long,检查丢失的信息。

25BigDecimal max(BigDecimal val)

此方法返回此BigDecimal和val的最大值。

26BigDecimal min(BigDecimal val)

此方法返回此BigDecimal和val的最小值。

27BigDecimal movePointLeft(int n)

此方法返回一个BigDecimal,它相当于一个小数点向左移动n位的BigDecimal。

28BigDecimal movePointRight(int n)

此方法返回一个BigDecimal,它相当于一个小数点向右移动n位的BigDecimal。

29BigDecimal multiply(BigDecimal multiplicand)

此方法返回一个BigDecimal,其值为(this×multiplicand),其标度为(this.scale()+ multiplicand.scale())。

30BigDecimal乘法(BigDecimal multiplicand,MathContext mc)

此方法返回一个BigDecimal,其值为(this×multiplicand),并根据上下文设置进行舍入。

31BigDecimal negate()

此方法返回一个BigDecimal,其值为(+ this),其标度为this.scale()。

32BigDecimal否定(MathContext mc)

此方法返回一个BigDecimal,其值为(-this),并根据上下文设置进行舍入。

33BigDecimal plus()

此方法返回一个BigDecimal,其值为(+ this),其标度为this.scale()。

34BigDecimal plus(MathContext mc)

此方法返回一个BigDecimal,其值为(+ this),并根据上下文设置进行舍入。

35BigDecimal pow(int n)

此方法返回一个BigDecimal,其值为(此n ),精确计算功率,达到无限精度。

36BigDecimal pow(int n,MathContext mc)

此方法返回一个BigDecimal,其值为(this n )。

37int precision()

此方法返回此BigDecimal的精度。

38BigDecimal remainder(BigDecimal divisor)

此方法将此BigDecimal转换为一个字节,检查丢失的信息。

39BigDecimal余数(BigDecimal divisor,MathContext mc)

此方法返回一个BigDecimal,其值为(此%divisor),并根据上下文设置进行舍入。

40BigDecimal round(MathContext mc)

此方法根据MathContext设置返回舍入的BigDecimal。

41int scale()

此方法返回此BigDecimal的比例。

42BigDecimal scaleByPowerOfTen(int n)

此方法返回一个BigDecimal,其数值等于(this * 10 n )。

43BigDecimal setScale(int newScale)

此方法返回一个BigDecimal,其标度为指定值,其值在数值上等于此BigDecimal。

44BigDecimal setScale(int newScale,int roundingMode)

此方法返回其规模为指定值的BigDecimal,其未缩放值通过将此BigDecimal的未缩放值乘以或除以适当的10的幂来确定,以维持其整体值。

45BigDecimal setScale(int newScale,RoundingMode roundingMode)

此方法返回其规模为指定值的BigDecimal,其未缩放值通过将此BigDecimal的未缩放值乘以或除以适当的10的幂来确定,以维持其整体值。

46short shortValueExact()

此方法将BigDecimal转换为short,检查丢失的信息。

47int signum()

此方法返回此BigDecimal的signum函数。

48BigDecimal stripTrailingZeros()

此方法返回一个BigDecimal,它在数值上等于此值,但从表示中删除了任何尾随零。

49BigDecimal减法(BigDecimal subtrahend)

此方法返回一个BigDecimal,其值为(this - subtrahend),其标度为max(this.scale(),subtrahend.scale())。

50BigDecimal减法(BigDecimal subtrahend,MathContext mc)

此方法返回一个BigDecimal,其值为(this - subtrahend),并根据上下文设置进行舍入。

51BigInteger toBigInteger()

此方法将BigDecimal转换为BigInteger。

52BigInteger toBigIntegerExact()

此方法将BigDecimal转换为BigInteger,检查丢失的信息。

53String toEngineeringString()

如果需要指数,此方法使用工程符号返回此BigDecimal的字符串表示形式。

54String toPlainString()

此方法返回此BigDecimal的字符串表示形式,不带指数字段。

55String toString()

如果需要指数,此方法返回此BigDecimal的字符串表示形式,使用科学记数法。

56BigDecimal ulp()

此方法返回此BigDecimal的ulp(最后一个位置的单位)的大小。

57BigInteger unscaledValue()

此方法返回一个BigInteger,其值为此BigDecimal的未缩放值。

58static BigDecimal valueOf(double val)

此方法使用Double.toString(double)方法提供的double的规范字符串表示形式将double转换为BigDecimal。

59static BigDecimal valueOf(long val)

此方法将long值转换为BigDecimal,其标度为零。

60static BigDecimal valueOf(long unscaledVal,int scale)

此方法将长的未缩放值和int缩放转换为BigDecimal。