处理非常大的数字

Dealing with extremely large numbers

所以我必须处理非常大的数字。事实上,确切的数字是 18,446,744,073,709,551,616,也就是 2^64。我想我可以把它写成 2^64,但是我要从中减去数字并除以其他任何东西,而且我的一些计算也可能是 quintillions。我尝试像这样在它的末尾添加 "L":

public int total = 18446744073709551616L;

但是,它仍然给我同样的错误,因为整数太大了。我不确定这是否是因为我输入错误或者即使使用 'L' 它仍然太大。有什么解决办法吗?我绝对愿意花费一点处理能力或增加额外的运行时间,只要它能工作。谢谢!

您可以使用 java.math.BigInteger.

使用 new BigInteger("18446744073709551616").

从字符串创建 BigInteger

您可以通过调用addsubtractmultiplydividemod等方法进行数学运算。您不能使用 +-*/% 运算符,因为它们仅适用于基本类型(而 + 适用于字符串).

我相信在你的情况下只有 BigInteger 或 BigDecimal 是解决方案。