![](/img/trans.png)
[英]Java ArithmeticException BigInteger would overflow supported range
[英]Exception in thread "main" java.lang.ArithmeticException: BigInteger would overflow supported range
import java.math.BigInteger;
public class GaayuProbOne {
static void power(int N, int P) {
BigInteger result = new BigInteger("10");
BigInteger res = result.pow(P);
System.out.println(res);
}
static double power1(int N, int P) {
double res =Math.pow(N,P);
return res;
}
public static void main(String[] args) {
int N = 10;
double P = 25*power1(10,25);
System.out.println(P);
int q = (int) P;
power(N, q);
}
}
这段代码是计算java中的10 25 10 25程序。
如何计算它?
线程“主”java 中的异常。 朗。 算术异常:大 Integer 会溢出支持的范围
有什么方法可以在 java 程序中计算 10 25 10 25吗?
注意:自发布此答案以来,问题已发生重大变化。 它最初要求一种计算 10^25 x 10^25 的方法。
代码有多个问题:
power
法忽略N
的值Math.pow
)int
的最大值仅为 2147483647 时,您将一个非常非常大的数字 (25 * 10^25) 转换为int
您需要的实际代码要简单得多:
BigInteger
执行此操作的简单代码:
import java.math.BigInteger;
public class Test {
public static void main(String[] args) {
int n = 10;
int p = 25;
BigInteger tmp = BigInteger.valueOf(n).pow(p);
BigInteger result = tmp.multiply(tmp);
System.out.println(result);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.