文章目录
- 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));}
}
