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

Java笔记 - BigInteger和BigDecimal

2017-10-13 20:40 393 查看

BigInteger

用来处理大数据

public void test(){
long sum = 1;
for(int i = 1; i <= 21; i++){
sum *= i;
}
System.out.println(sum);
}


输出结果:-4249290049419214848

因为已经超出了long允许的范围

这种情况就要使用BigInteger,他是java.math包下的一个类

public void test(){
BigInteger sum = BigInteger.valueOf(1);
for(int i = 1; i<=21; i++){
BigInteger bi = BigInteger.valueOf(i);
sum = sum.multiply(bi);
}
System.out.println(sum);
}


输出结果:51090942171709440000

BigDecimal

处理二进制运算导致的误差

public void test(){
System.out.println(2.0 - 1.1);
}


输出结果:0.8999999999999999

如果要解决这种问题,就要用到BigDecimal类,它是java.math 包下的一个类

public void test(){
BigDecimal b1 = new BigDecimal("2.0");//创建BigDecimal对象时,必须使用String构造器
BigDecimal b2 = new BigDecimal("1.1");
BigDecimal b3 = b1.subtract(b2);
System.out.println(b3);
}


输出结果:0.9
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  BigInteger BigDecimal