gpt4 book ai didi

java - java.math.BigInteger 的用法是错误的吗?

转载 作者:搜寻专家 更新时间:2023-11-01 01:06:40 27 4
gpt4 key购买 nike

我玩弄 java.math.BigInteger。这是我的 Java 类,

public class BigIntegerTest{
public static void main(String[] args) {
BigInteger fiveThousand = new BigInteger("5000");
BigInteger fiftyThousand = new BigInteger("50000");
BigInteger fiveHundredThousand = new BigInteger("500000");
BigInteger total = BigInteger.ZERO;
total.add(fiveThousand);
total.add(fiftyThousand);
total.add(fiveHundredThousand);
System.out.println(total);
}
}

我认为结果是 555000。但实际是0。为什么?

最佳答案

BigInteger 对象是不可变的。它们的值一旦创建就无法更改。

当您调用 .add 时,将创建并返回一个 BigInteger 对象,如果您想访问它的值,则必须存储该对象。

BigInteger total = BigInteger.ZERO;
total = total.add(fiveThousand);
total = total.add(fiftyThousand);
total = total.add(fiveHundredThousand);
System.out.println(total);

(可以说 total = total.add(...) 因为它只是删除对 old total 对象的引用并将其重新分配给由 .add 创建的 引用。

关于java - java.math.BigInteger 的用法是错误的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12175674/

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