文章目录
- BigInteger类
- BigDecimal类
BigInteger类
Integer类作为int的包装类,能存储的最大整型值为2^31-1,Long类也是有限的,
最大为2^63-1。如果要表示再大的整数,不管是基本数据类型还是他们的包装类
都无能为力。
java.math包的BigInteger可以表示不可变的任意精度的整数。BigInteger 提供所有 Java 的基本整数操作符的对应物,并提供 java.lang.Math 的所有相关方法。另外,BigInteger 还提供以下运算:模算术、GCD 计算、质数测试、素数生成、位操作以及一些其他操作。
构造器:
BigInteger(String val):根据字符串构建BigInteger对象
常用方法:
①BigInteger abs()
:返回此 BigInteger 的绝对值的 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) 的 BigInteger
⑦BigInteger[] divideAndRemainder(BigInteger val)
:返回包含 (this / val) 后跟
(this % val) 的两个 BigInteger 的数组
⑧BigInteger pow(int exponent)
:返回其值为 (this^exponent) 的 BigInteger
BigDecimal类
一般的Float类和Double类可以用来做科学计算或工程计算,但在商业计算中,要求数字精度比较高,故用到java.math.BigDecimal类。BigDecimal类支持不可变的、任意精度的有符号十进制定点数。
构造器:
①public BigDecimal(double val)
②public BigDecimal(String val)
常用方法:
①BigDecimal add(BigDecimal augend)
②BigDecimal subtract(BigDecimal subtrahend)
③BigDecimal multiply(BigDecimal multiplicand)
④BigDecimal divide(BigDecimal divisor, int scale, int roundingMode)
import java.math.BigDecimal;
import java.math.BigInteger;public class BigDecimalTest {public static void main(String[] args) {BigInteger bi = new BigInteger("12433241333123");BigDecimal bd = new BigDecimal("1241135.351");BigDecimal bd2 = new BigDecimal("1335231");System.out.println(bi);System.out.println(bd.divide(bd2, BigDecimal.ROUND_HALF_UP));System.out.println(bd.divide(bd2, 15, BigDecimal.ROUND_HALF_UP));}
}