JAVA常用类之——BigInteger和BigDecimal
1. 先来看BigInteger,它用来进行超过Integer范围的数据的操作,进行如下测试:
public static void main(String[] args)
{
//1. 获得Integer的最大值
// 可以看到Integer的范围是-2^32 - 2^32-1
System.out.println(Integer.MAX_VALUE);
Integer i = new Integer(2147483647);
//Integer不能解决超过最大值的运算操作,编译都不会通过
//Integer ii = new Integer(2147483648);
//2. 下面这种方法说明Integer的最大值是2147483647
// 再加+1后该数溢出变为-2147483648
Integer ii = new Integer(2147483647+1);
System.out.println(ii);
//3. 采用BigInteger可以获得超过Integer范围的数的操作
BigInteger iii = new BigInteger("21474836488888");
System.out.println(iii);
}
对BigInteger进行加减乘除操作如下所示:
public static void main(String[] args)
{
//1. 创建两个大数对像
BigInteger bi1 = new BigInteger("2147483648");
BigInteger bi2 = new BigInteger("214748364888888888888888");
//2. 测试加法
System.out.println(bi1.add(bi2));
//3. 测试减法
System.out.println(bi1.subtract(bi2));
//4. 测试乘法
System.out.println(bi1.multiply(bi2));
//5. 测试除法
System.out.println(bi2.divide(bi1));
//6. 测试valueof方法
System.out.println(BigInteger.valueOf(21474836488888888L));
}
2. 再来看看BigDecimal
BigDecimal是解决float和double的精度丢失而出现的。