gpt4 book ai didi

java核心技术卷I中的细节(2- 大数)

转载 作者:知者 更新时间:2024-03-13 01:41:36 26 4
gpt4 key购买 nike

大数

如果基本的证书和浮点数精度不能满足需求,那么可以使用java.math包中的两个类:BigInteger、BigDecimal。

这两个类可以处理包含任意长度数字序列的数值。BigInteger类实现任意精度的整数运算,BigDecimal类实现任意精度的浮点数运算。

例如:

public static void main(String[] args) {
        BigInteger bigInteger = new BigInteger("123456789987654321123456789");
        System.out.println("BigInteger:"+bigInteger);

        BigDecimal bigDecimal = new BigDecimal("12345678998.7654321123456789");
        System.out.println("BigDecimal:"+bigDecimal);
    }

使用静态的valueOf()方法可以将普通的数值转换为大数。

BigInteger n = BigInteger.valueOf(10000);

但是,我们熟悉的 “+ - * / ”算数运算符不能处理大数,而要适应大数类提供的add()、substract()、multiply()、divide()方法。

例如:

public static void main(String[] args) {

        BigInteger a = new BigInteger("123456789");
        BigInteger b = new BigInteger("987654321");

        System.out.println("a = " + a);
        System.out.println("b = " + b);

        BigInteger c = a.add(b);    //c = a + b
        System.out.println("a + b = " + c);

        BigInteger d = a.multiply(b.add(c));    //d = a * (b + c)
        System.out.println("a * (b + c) = " + d);

    }

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com