常用类——Java.math.BIginteger/BigDecimal
Java.math.BIginteger/BigDecimal
简介:
BigInteger 大整数类型
BigDecimal 大小数类型:能够表达许多位小数的大小数类型
大数字类型目的是为了破除基本类型因为精度限制
大数字类型的创建
//创建大数字类型对象
BigInteger bi1 = new BigInteger("55555555555555555555555555555555555555555555555555555555555555555555");
BigDecimal bd1 = new BigDecimal("3333333333333333333333333333333333333333333333.2222222222222222222222");
大数字类型的常量
//常量
BigInteger zero = BigInteger.ZERO;
BigInteger one = BigInteger.ONE;
BigInteger ten = BigInteger.TWO;
BigInteger two = BigInteger.TEN;
大数字类型的方法调用
注意⚠️:BIginteger/BigDecimal用法相同
add()
加法
BigInteger add = bi1.add(bi2);//加法
subtract()
减法
BigInteger subtract = bi1.subtract(bi2);//减法
multiply
乘法
BigInteger multiply = bi1.multiply(bi2);//乘法
divide()
除法
BigInteger divide = bi1.divide(bi2);//除法
实例
如果用long类型来接收数据,遇到数字较大的阶乘就无法计算了,这时可以用大数字类型
/**
* 递归求阶乘
*/
public static BigInteger fac(int num) {
//把num转换成大数字类型
//技巧: 数字加上空字符串会转换成字符串类型
BigInteger bi = new BigInteger(num + "");
if (num == 1) {
return BigInteger.ONE;
}
return bi.multiply(fac(num - 1));
}

浙公网安备 33010602011771号