BigInteger与BigDecimal类

BigInteger与BigDecimal类

BigInteger

Integer类作为int的包装类,能存储的最大整型值为2^31 - 1,Long类也是有限的,最大为2^63 - 1。如果要表示再大的整数,不管是基本数据类型还是他们的包装类都无能为力,更不用说进行计算。

java.math包的BigInteger可以表示不可变的任意精度的整数。BingInteger提供所有的Java的基本整数操作符的对应物,并提供java.lang.Math的所有相关方法。BigInteger还提供以下运算:模算术、GCD计算、质数测试、素数生成、位操作以及一些其他操作。

构造器

// 根据字符串构建BigInteger对象
BigInteger(String val)

常用方法

// 返回此BigInteger的绝对值的BigInteger
public BigInteger abs()
// 返回其值为 (this + val) 的BigInteger
BigInteger add(BigInteger val)
// 返回其值为 (this - val) 的BigInteger
BigInteger subtract(BigInteger val)
// 返回其值为 (this * val) 的BigInteger
BigInteger multiply(BigInteger val)
// 返回其值为 (this / val) 的BigInteger;整数相除只保留整数部分
BigInteger divide(BigInteger val)
// 返回其值为 (this % val) 的BigInteger
BigInteger remainder(BigInteger val)
// 返回包含 (this / val) 后跟 (this % val) 的两个BigInteger的数组
BigInteger[] divideAndRemainder(BigInteger val)
// 返回其值为 (this^exponent)幂函数 的BigInteger
BigInteger pow(int exponent)

BigDecimal

一般的Float类和Double类可以用来做科学计算或工程计算,但在商业计算中,要求数字精度比较高,故用到java.math.BigDecimal类。BigDecimal类支持不可变的、任意精度的有符号十进制定点数。

构造器

public BigDecimal(double val)
public BigDecimal(String val)

常用方法

public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)

⚠注意:
BigDecimal 是一个非常好用的表示高精度数字的类,其中提供了很多丰富的方法。但是,它的 equals 方法使用的时候需要谨慎,
因为它在比较的时候,不仅比较两个数字的值,还会比较它们的标度,只要这两个因素有一个不相等的,那么结果也是false。如果想要对两个 BigDecimal 的数值进行比较的话,可以使用 compareTo 方法。

posted @   Lz_蚂蚱  阅读(13)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示
评论
收藏
关注
推荐
深色
回顶
收起