我需要一个解决Java在计算和存储大数字方面的限制的解决方案

Con*_*vid 26 java

在python中你可以计算一个简单的循环,让我们说它600!是一个非常大的数字,但python可以在很短的一秒钟内轻松处理它.即使它超过200数字长.另一方面,在java中你必须使用64位文字(长数据类型).所以机器将返回0.
有没有办法克服这个?

Kon*_*Kon 51

您可以使用Java BigInteger类.

还有一个简单的例子:

import java.math.BigInteger;

BigInteger k = BigInteger.valueOf(10000L);
k = k.pow(10000);
//k is now 10000^10000 
System.out.println(k.toString());
Run Code Online (Sandbox Code Playgroud)

知道该类是不可变的很重要.您还可以查看BigDecimal任意精度带符号十进制数的类似类.

  • @Kon没有错,但最好链接最新的API文档 (3认同)