所以我必须处理非常大的数字。事实上,确切的数字是18,446,744,073,709,551,616,即2 ^ 64。我想我可以把它写成2 ^ 64,但后来我将从它中减去数字并除以等等,我的一些计算也可能在五分之一。我试着在它的末尾添加“L”,如下所示:
public int total = 18446744073709551616L;
然而,它仍然给出了与整数太大相同的错误。我不确定这是因为我输错了,或者即使是'L'仍然太大了。围绕这个解决方案吗?只要它有效,我绝对愿意花费一点处理能力或增加额外的运行时间。的Merci!
答案 0 :(得分:3)
您可以使用java.math.BigInteger
。
使用new BigInteger("18446744073709551616")
从字符串创建BigInteger。
您可以通过调用add
,subtract
,multiply
,divide
和mod
等方法来执行数学运算。您无法使用+
,-
,*
,/
,%
运算符,因为它们仅适用于基本类型(以及字符串上的+
)。
答案 1 :(得分:1)
我相信你的情况只有BigInteger或BigDecimal才会成为解决方案。