BigInteger类和BigDecimal类
BigInteger适合保存比较大的整型
- 当我们编程中,需要处理很大的整数,long不够用,可以使用BigInteger的了来搞定
- 在对BigInteger进行加减乘除的时候,需要使用对应的方法,不能直接进行 + - * /,可以创建一个要操作的BigInteger然后进行相应的操作
BigInteger.add()
BigInteger.subtract()
BigInteger.multiply()
BigInteger.divide()
public class BigInteger_ {
public static void main(String[] args) {
BigInteger bigInteger = new BigInteger("-9999999999999999");
BigInteger bigInteger1 = new BigInteger("-2");
System.out.println(bigInteger);
BigInteger add = bigInteger.add(bigInteger1);//加
System.out.println(add);
BigInteger subtract = bigInteger.subtract(bigInteger1);//减
System.out.println(subtract);
BigInteger multiply = bigInteger.multiply(bigInteger1);//乘
System.out.println(multiply);
BigInteger divide = bigInteger.divide(bigInteger1);//除
System.out.println(divide);
}
}
BigDecimal适合保存精度更高的浮点型
- 当我们需要保存一个很高精度的数时,double不够用可以用BigDecimal
- 在对BigDecimal进行加减乘除的时候,需要使用对应的方法,不能直接进行 + - * /,可以创建一个要操作的BigDecimal然后进行相应的操作
注意在除法运算时可能除不整,会出异常
解决方法:
在调用divide方法时,指定精度即可,BigDecimal.ROUND_CEILING
如果有无线循环小数,就会保留分子的精度,修改如下。
BigDecimal divide = bigDecimal.divide(bigDecimal1,BigDecimal.ROUND_CEILING);
调用方法和用法和BigInteger一样,同上