您的位置:首页 > 编程语言 > Java开发

JAVA常用类之——BigInteger和BigDecimal

2015-07-20 13:07 513 查看
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的精度丢失而出现的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: