常用类库之BigDecimal类

目录

一、重要常用方法:+、-、×、÷

二、所有方法


由于float类和double类在运算时容易出现误差,于是需要借助BigDecimal类控制精度。

eg:控制台计算0.1+0.2:

 System.out.println(0.1+0.2);

结果:存在误差

BigDecimal类计算需要new对象来计算,用两个对象来进行相应的计算。

一、重要常用方法:+、-、×、÷

一、+:add后返回的是一个新对象,而不是改变原对象的值,例如:

        BigDecimal b1 = new BigDecimal("0.111111111");  //注:必须带双引号
        BigDecimal b2 = new BigDecimal("0.222222222");
        BigDecimal b3 = b1.add(b2);
        System.out.println(b1);
        System.out.println(b2);
        System.out.println(b3);

结果:对象b1和b2的值未改变,add后的返回值赋给b3。 

如果我们想用int型的运算结果,可以用value方法。

eg:需要int型的

System.out.println(b3.intValue());

结果:

 二、-×÷:

BigDecimal b3 = b1.subtract(b2);  //减法
BigDecimal b4 = b1.multiply(b2);  //乘法
BigDecimal b5 = b1.divide(b2);    //除法

二、所有方法

变量和类型方法描述
BigDecimalabs()

返回 BigDecimal其值是此的绝对值 BigDecimal ,其标为 this.scale()

BigDecimalabs​(MathContext mc)

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

BigDecimaladd​(BigDecimal augend)

返回 BigDecimal其值为 (this + augend) ,其比例为 max(this.scale(), augend.scale())

BigDecimaladd​(BigDecimal augend, MathContext mc)

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

bytebyteValueExact()

BigDecimal转换为 byte ,检查是否丢失了信息。

intcompareTo​(BigDecimal val)

将此 BigDecimal与指定的 BigDecimal

BigDecimaldivide​(BigDecimal divisor)

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

BigDecimaldivide​(BigDecimal divisor, int roundingMode)已过时。

应该优先使用方法divide(BigDecimal, RoundingMode) ,而不是这种传统方法。

BigDecimaldivide​(BigDecimal divisor, int scale, int roundingMode)已过时。

应该优先使用方法divide(BigDecimal, int, RoundingMode)来使用该传统方法。

BigDecimaldivide​(BigDecimal divisor, int scale, RoundingMode roundingMode)

返回 BigDecimal其值为 (this / divisor) ,其比例为指定的比例。

BigDecimaldivide​(BigDecimal divisor, MathContext mc)

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

BigDecimaldivide​(BigDecimal divisor, RoundingMode roundingMode)

返回 BigDecimal其值为 (this / divisor) ,其比例为 this.scale()

BigDecimal[]divideAndRemainder​(BigDecimal divisor)

返回一个两元件 BigDecimal阵列含有的结果 divideToIntegralValue ,随后的结果 remainder上的两个操作数。

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

返回一个两元件 BigDecimal阵列含有的结果 divideToIntegralValue ,随后的结果 remainder上与根据上下文设置进行舍入计算出的两个操作数。

BigDecimaldivideToIntegralValue​(BigDecimal divisor)

返回 BigDecimal其值是 (this / divisor)舍入的商 (this / divisor)的整数部分。

BigDecimaldivideToIntegralValue​(BigDecimal divisor, MathContext mc)

返回 BigDecimal ,其值是整数部分 (this / divisor)

doubledoubleValue()

BigDecimal转换为 double

booleanequals​(Object x)

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

floatfloatValue()

BigDecimal转换为 float

inthashCode()

返回此 BigDecimal的哈希码。

intintValue()

BigDecimalint

intintValueExact()

BigDecimal转换为 int ,检查是否丢失了信息。

longlongValue()

BigDecimal转换为 long

longlongValueExact()

将此 BigDecimal转换为 long ,检查是否丢失了信息。

BigDecimalmax​(BigDecimal val)

返回 BigDecimalval

BigDecimalmin​(BigDecimal val)

返回 BigDecimalval

BigDecimalmovePointLeft​(int n)

返回一个 BigDecimal ,相当于这个小数点向左移动 n位置。

BigDecimalmovePointRight​(int n)

返回一个 BigDecimal ,相当于这个小数点向右移动 n位置。

BigDecimalmultiply​(BigDecimal multiplicand)

返回 BigDecimal其值为 (this × multiplicand) ,其比例为 (this.scale() + multiplicand.scale())

BigDecimalmultiply​(BigDecimal multiplicand, MathContext mc)

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

BigDecimalnegate()

返回 BigDecimal其值为 (-this) ,其比例为 this.scale()

BigDecimalnegate​(MathContext mc)

返回 BigDecimal其值为 (-this) ,根据上下文设置进行舍入。

BigDecimalplus()

返回 BigDecimal其值为 (+this) ,其比例为 this.scale()

BigDecimalplus​(MathContext mc)

返回 BigDecimal其值为 (+this) ,根据上下文设置进行舍入。

BigDecimalpow​(int n)

返回 BigDecimal其值为 (thisn) ,精确计算功率,精度无限制。

BigDecimalpow​(int n, MathContext mc)

返回 BigDecimal其值为 (thisn)

intprecision()

返回此 BigDecimal精度

BigDecimalremainder​(BigDecimal divisor)

返回 BigDecimal其值为 (this % divisor)

BigDecimalremainder​(BigDecimal divisor, MathContext mc)

返回 BigDecimal其值为 (this % divisor) ,根据上下文设置进行舍入。

BigDecimalround​(MathContext mc)

返回 BigDecimal根据四舍五入 MathContext设置。

intscale()

返回 BigDecimal比例

BigDecimalscaleByPowerOfTen​(int n)

返回其数值等于( this * 10 n )的BigDecimal。

BigDecimalsetScale​(int newScale)

返回 BigDecimal其标度为指定值,其值在数值上等于此 BigDecimal

BigDecimalsetScale​(int newScale, int roundingMode)已过时。

应该优先使用方法setScale(int, RoundingMode)来使用该传统方法。

BigDecimalsetScale​(int newScale, RoundingMode roundingMode)

返回 BigDecimal其比例为指定值,其未缩放值通过将此 BigDecimal值乘以或除以适当的10的幂来确定,以保持其总值。

shortshortValueExact()

将此 BigDecimal转换为 short ,检查是否丢失了信息。

intsignum()

返回此 BigDecimal的signum函数。

BigDecimalsqrt​(MathContext mc)

返回 this平方根的 this并根据上下文设置进行舍入。

BigDecimalstripTrailingZeros()

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

BigDecimalsubtract​(BigDecimal subtrahend)

返回 BigDecimal其值为 (this - subtrahend) ,其比例为 max(this.scale(), subtrahend.scale())

BigDecimalsubtract​(BigDecimal subtrahend, MathContext mc)

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

BigIntegertoBigInteger()

BigDecimal转换为 BigInteger

BigIntegertoBigIntegerExact()

BigDecimal转换为 BigInteger ,检查是否丢失了信息。

StringtoEngineeringString()

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

StringtoPlainString()

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

StringtoString()

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

BigDecimalulp()

返回此 BigDecimal的ulp(最后一个单位)的 BigDecimal

BigIntegerunscaledValue()

返回 BigInteger其值是此的 非标度值 BigDecimal

static BigDecimalvalueOf​(double val)

转换一个 doubleBigDecimal ,使用 double通过所提供的规范的字符串表示 Double.toString(double)方法。

static BigDecimalvalueOf​(long val)

long值转换为 BigDecimal ,其标度为零。

static BigDecimalvalueOf​(long unscaledVal, int scale)

long值和 int比例转换为 BigDecimal

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值