Java - 常用类库 - BigDecimal/BigInteger

常用类库 - BigDecimal/BigInteger

用于处理任意精度的浮点数和任意长度的整数

一、BigDecimal类

BigDecimal(Java SE 11 & JDK 11)
当处理的浮点数精度超出float乃至double的限制时,可以交给BigDecimal来处理,使用BigDecimal进行运算可避免精度丢失。BigDecimal类实现了大多数的运算方法,不同于double等基本类型,在进行加减乘除等操作时,不能直接使用运算符来计算,而是要用类的各种方法来实现。

常用构造方法:
1.BigDecimal​(double val)

将double转换为BigDecimal,它是 double的二进制浮点值的精确十进制表示形式。

2.BigDecimal​(String val)

将字符串构造为BigDecimal浮点数。

常用方法:
1.add​(BigDecimal augend)

返回此BigDecimal的值与另一个BigDecimal值的和。

2.divide(BigDecimal divisor)

返回此BigDecimal的值与另一个BigDecimal值的商(浮点数)。

3.divideAndRemainder​(BigDecimal divisor)

返回BigDecimal数组,第1个值为商(整数部分),第2个值为余数。

4.doubleValue()

将BigDecimal转换为double。

5.floatValue()

将BigDecimal转换为float。

6.intValue()

将BigDecimal转换为int。

7.longValue()

将BigDecimal转换为long。

8.max​(BigDecimal val)

返回两个BigDecimal的最大值。

9.min​(BigDecimal val)

返回两个BigDecimal的最小值。

10.multiply(BigDecimal multiplicand)

返回此BigDecimal的值与另一个BigDecimal值的积。

11.subtract​(BigDecimal subtrahend)

返回此BigDecimal的值与另一个BigDecimal值的差。

12.valueOf​(double val)

将double转换为BigDecimal。

public static void main(String[] args) {
	System.out.println(0.3+0.6); //0.8999999999999999,直接运算,精度丢失
	BigDecimal b1 = new BigDecimal("0.3");
	BigDecimal b2 = new BigDecimal("0.6");
	BigDecimal b3 = b1.add(b2); //加
	BigDecimal b4 = b1.subtract(b2); //减
	BigDecimal b5 = b1.divide(b2); //乘
	BigDecimal b6 = b1.multiply(b2); //除
	System.out.println(b1); //0.3
	System.out.println(b2); //0.6
	System.out.println(b3); //0.9
	System.out.println(b4); //-0.3
	System.out.println(b5); //0.5
	System.out.println(b6); //0.18
	double d1 = b1.doubleValue();
	System.out.println(d1); //0.3
}

二、BigInteger类

BigInteger(Java SE 11 & JDK 11)
当处理的整数超出int乃至long的处理范围时,可以交给BigInteger来处理。BigInteger类实现了大多数的运算方法,不同于int等基本类型,在进行加减乘除等操作时,不能直接使用运算符来计算,而是要用类的各种方法来实现。

常用构造方法:
1.BigInteger​(String val)

将字符串构造为BigInteger​​整数。

常用方法:
1.add​(BigInteger val)

返回此BigInteger的值与另一个BigInteger值的和。

2.divide​(BigInteger val)

返回此BigInteger的值与另一个BigInteger值的商(整数部分)。

3.divideAndRemainder​(BigInteger val)

返回BigInteger数组,第1个值为商(整数部分),第2个值为余数。

4.doubleValue()

将BigInteger转换为double。

5.floatValue()

将BigInteger转换为float。

6.intValue()

将BigInteger转换为int。

7.longValue()

将BigInteger转换为long。

8.max​(BigInteger val)

返回两个BigInteger的最大值。

9.min​(BigInteger val)

返回两个BigInteger的最小值。

10.mod​(BigInteger m)

返回此BigInteger的值除以另一个BigInteger值的余数。

11.multiply​(BigInteger val)

返回此BigInteger的值与另一个BigInteger值的积。

12.subtract​(BigInteger val)

返回此BigInteger的值与另一个BigInteger值的差。

13.valueOf​(long val)

将long转换为BigInteger。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值