常用类——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));
}
posted @ 2022-03-24 19:53  JanoCode  阅读(29)  评论(0)    收藏  举报