处理极大的数字

时间:2015-03-25 23:25:44

标签: java int largenumber

所以我必须处理非常大的数字。事实上,确切的数字是18,446,744,073,709,551,616,即2 ^ 64。我想我可以把它写成2 ^ 64,但后来我将从它中减去数字并除以等等,我的一些计算也可能在五分之一。我试着在它的末尾添加“L”,如下所示:

public int total = 18446744073709551616L;

然而,它仍然给出了与整数太大相同的错误。我不确定这是因为我输错了,或者即使是'L'仍然太大了。围绕这个解决方案吗?只要它有效,我绝对愿意花费一点处理能力或增加额外的运行时间。的Merci!

2 个答案:

答案 0 :(得分:3)

您可以使用java.math.BigInteger

使用new BigInteger("18446744073709551616")从字符串创建BigInteger。

您可以通过调用addsubtractmultiplydividemod等方法来执行数学运算。您无法使用+-*/%运算符,因为它们仅适用于基本类型(以及字符串上的+ )。

答案 1 :(得分:1)

我相信你的情况只有BigInteger或BigDecimal才会成为解决方案。