BigInteger类:
1)Integer类作为int得包装类,能存储得最大整型值为2^31-1,Long类也是有限的,最大为2^63-1。如果要表示再大的整数,不管是基本数据类型还是他们的包装类都无能为力,更不用说进行运算了。
2)java.math包的BigInteger可以表示不可变的任意精度的整数。BigInteger可以表示不可变的任意精度的整数。BigInteger提供所有Java的基本整数操作符的对应物,并提供java.lang.Math的所有相关方法。另外,BigInteger还提供以下运算:模算数、GCD计算、质数测试、素数生成、位操作以及一些其他操作。
3)构造器:
BigInteger(String val):根据字符串构建BigInteger对象
4)常用方法
public BigInteger abs():返回此BigInteger的绝对值的BigInteger的绝对值的BigInteger。
BigInteger add(BigInteger):返回值为(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类:
1)一般的Float类和Double类可以用来做科学计算或工程计算,但在商业计算中,要求数字精度比较高,故用到java.math.BigDecimal类。
2)BigDecimal类支持不可变的、任意精度的有符号十进制点数。
3)构造器:
public BigDecimal(double val)
public BigDecimal(String val)
4)常用方法
public BigDecimal add(BigDecimal augend)
public BigDecimal subtract(BigDecimal subtrahend)
public BigDecimal multiply(BigDecimal multiplicand)
public BigDecimal add(BigDecimal divisor,int scale,int scale,int roundingMode)
@Test
public void testBigInteger(){
BigInteger bi=new BigInteger("12433241123");
BigDecimal bd=new BigDecimal("12435.351");
BigDecimal bd2=new BigDecimal("11");
System.out.println(bi);
//System.out.println(bd.divide(bd2));
System.out.println(bd.divide(bd2,BigDecimal.ROUND_HALF_UP));
System.out.println(bd.divide(bd2,15,BigDecimal.ROUND_HALF_UP));
}