当前位置: 首页 > 知识库问答 >
问题:

线程“main”java.lang.arithmeticException中的异常:BigInteger将溢出支持的范围

姚乐家
2023-03-14
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);
    }
}

共有1个答案

戎劲
2023-03-14

注意:自从这个答案发布后,这个问题已经发生了很大的变化。它最初要求一种计算10^25×10^25的方法。

代码有多个问题:

  • 它使用非常规变量名-不是bug,但仍然需要修复
  • power方法忽略n
  • 的值
  • 执行浮点算术没有明显的原因(使用math.pow)
  • 乘以25,这在您试图实现的目标中是不存在的
  • 将一个非常非常大的数字(25*10^25)强制转换为int,而int的最大值仅为2147483647
  • 您试图计算最后一行中的10^2147483647-如果没有前面的问题,您将试图计算10^(25*10^25),这肯定不是指定的
    null
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);
    }
}
 类似资料:
  • 我试图在Hadoop-1.0.4上运行WordCount示例,但我得到以下错误: 我使用的是以下Java版本: 另外,JAVA_HOME指示java7安装目录。 谢谢你的帮助。

  • 我在线程“main”java中遇到异常。错误:未解析编译。 我做错了什么? 线程“main”中出现异常: java.lang.错误:未解决的编译问题: 对于类型在

  • 我试图采取一个文本文件与它的分数。将字符串中的分数转换为bigdecimal。然后将结果分割并存储在堆栈上。 txt文件中的每一行都是一个分数,它是用分隔分子和分母的字符“/”随机生成的。分子和分母的长度可以为1-50,并且必须大于0。数字是随机生成的,因此需要存储小数位。在我的代码中,我首先将字符串转换为BigInteger,然后再转换为BigDecimal。这适用于第一个字符串,但会打断第二个

  • 问题内容: 每当我运行此命令时,该函数就可以正常使用。当我选择洞穴时,消息会每隔2秒弹出一次,然后当它越过该部分时,就会出现错误: 我已经尝试过和,并且在该方法中使用时,出现了很多错误。当我在方法中使用时,它不接受我的输入。 当我在该方法中使用时,它不接受我的字符串输入,而直接进入另一个游戏,但是布尔值返回并且它无限地发送垃圾邮件“ Which Cave …”。 我已经阅读了错误报告,以及类似问题

  • 问题内容: 我正在开发一个访问数据库的项目,但是我遇到了一些问题。我尝试使用hibernate3.2和4.52,但是它不起作用。 例外是在这行代码中 问题答案: 您需要在类路径中检查类org.apache.log4j.Level的冲突版本并进行解决。版本1.2.12或更高版本的log4j jar中提供了TRACE级别。

  • 我最近安装了intellij IDEA 14.0,为了确保一切正常,我创建了一个简单的Hello World程序。我不明白为什么输出不正确,为什么会出现这个错误。如果有人能帮忙,那就太好了。 以下是程序: 这是错误: