大数字运算学习笔记

9.4大数字运算
9.4.1BigInteger
BigInteger类型的数字范围较Integer类型的范围要大得多。前文介绍的Integer为int的包装类,int的最大值为2^31-1,如果要计算更大的数字,使用Integer数据类型将无法实现,所以java提供了BigInteger类来处理更大的数字,其支持任意精度,可以认为在运算中BigInteger可以准确的表示任意的大小数值二不会丢失
在BigIntegetr类中封装了多种操作包括加减乘除,绝对值,相反数,最大公约数即判断是否为质数等操作
语法如下:
public BigInteger(String var);
运算方法:
public BigInteger add(BigInteger val):做加法运算
public BigInteger subtract(BigInteger val):做减法运算
public BigInteger multiply(BigInteger val):做乘法运算
public BigInteger divide(BigInteger val):做除法运算
public BigInteger remainder(BigInteger val):做取余操作
public BigInteger[] divideAndRemainder(BigInteger val):用数组返回余数和商,结果数组中第一个为商,第二个为余数
public BigInteger pow(int val):见ing取参数的val次方操作
public BigInteger negate():取相反数
public BigInteger shiftLeft(int n):将数字向左移动n位,若n为负数就向右移动
public BigInteger shiftRight((int n):将数字向右移动n位,若n位负数就向左移动
public BigInteger and(BigInteger val):做与操作
public BigInteger or(BigInteger val):做或操作
public BigInteger compareTo(BigInteger val):做数字比较操作
public boolean equals(Object X):当参数x是BigInteger类型的数字时并且数值相等时,返回true
public BigInteger min(BigInteger val):返回较小的数值
public BigInteger max(BigInteger val):返回较大的数值
9.4.2BigDecimal
与BigInteger均能实现大数字的操作,但是不同的是其加入了小数的概念,其可以支持任意精度的计算
构造方法:
public BigDecimal(double val):实例化时将双精度型转化为BigDecimal类型
public BigDecimal(String val):实例化时将字符串类型妆化为BigDeciaml类型
操作方法:
public BigDecimal add(BigDecimal augend):做加法操作
public BigDecimal subtract(BigDecimal subtrashend):做减法操作
public BigDecimal mulitiply(BigDecimal a):做乘法操作
public BigDecimal divide(BigDecimal a,int b,int c):做除法操作,3个参数分别为除数,商的小数点后的位数,近似处理模式
BigDecimal类中的divide()方法的多种处理模式
BigDecimal.ROUND_UP:若商的最后一位大于零,则向前进位,正负数一样
BigDecimal.ROUND_DOWN:商的最后一位数字无论是什么都省略
BigDecimal.ROUND_GEILING:若商为正数,则执行ROUND_UP处理,若商为负数,按ROUND_DOWN处理,这两种模式都会时近似值大于等于实际值
BigDecimal.ROUND_FLOOR:与ROUND_GEILING相反
BigDecimal.ROUND_HALF_DOWN:对商进行四舍五入操作,若最后一位小于等于五,则舍弃,反之进位,例:7.5≈7
BigDecimal.ROUND_HALF_UP:对商进行四射五入操作,若最后一位小于等于五,则舍弃,反之进位,例:7.5≈8
BigDecimal.ROUND_HALF_EVEN:若商的倒数第二位为奇数,则按照ROUND_HALF_UP处理,反之,若为偶数,则按照ROUND_HALF_DOWN处理. 例:7.5≈7 7.5≈8

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值