BigInteger适合保存比较大的数据,比如处理很大的数据,long不够用,可以使用BigInteger搞定,在对BigInteger进行操作时,需要使用对应的方法,不能直接进行 + - * /
例如BigInteger bigInteger1 = new BigInteger("278999999999999999999999999999");
BigInteger bigInteger2 = new BigInteger("1");
BigInteger add = bigInteger1.add(bigInteger2); //278000000000000000000000000000
BigInteger subtract = bigInteger1.subtract(bigInteger2); //278999999999999999999999999998
BigInteger multiply = bigInteger1.multiply(bigInteger2); //278999999999999999999999999999 * 1
BigInteger divide = bigInteger1.divide(bigInteger2); //278999999999999999999999999999 / 1
divide方法可能会抛出算术异常
----------------------------------
BigDecimal适合保存精度更高的浮点型(小数),比如double不够用的情况下
如果要对BigDecimal进行运算,也需要调用对应的方法
其中调用divide方法可能抛出算术运算异常,可以指定精度即可
bigDecimal.divide(bigDecimal1,BigDecimal.ROUND_CEILING);
如果有无限循环小数,则保留分子的精度