首页 文章

parseInt抛出错误

提问于
浏览
0

我在java中有一小段代码,在运行代码时会抛出以下错误

线程“main”中的异常java.lang.NumberFormatException:对于java.lang.Integer.parseInt(Integer.java:495)中java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)的输入字符串:“10000000000” java.lang.Integer.parseInt(Integer.java:527)at hello.main(hello.java:6)

public class hello {
    public static void main(String args[])
    {
        int x = 1024;
        String h = Integer.toString(x, 2);
        int xx = 9*(Integer.parseInt(h));
        System.out.println(xx);
    }
}

我怀疑这个问题与值/ parseInt的大小有关 . 你能详细解释一下这个错误的原因吗?

3 回答

  • 2

    您收到此错误是因为您尝试解析的值对于Integer类型而言太大 . 尝试使用Long代替 .

  • 1

    您将获得java.lang.NumberFormatException:对于输入字符串:“10000000000”,因为它超出了int的范围 .

    integer是带符号的32位类型,范围从-2,147,483,648到2,147,483,647 . long是带符号的64位类型,适用于int类型不足以保持所需值的情况,范围从-9,223,372,036,854,775,808到9,223,372,036,854,775,807 . 这使得当需要大的整数时它很有用 .

    试试这行代码 -

    long xx = 9*(Long.parseLong(h));
    
  • 3

    这是因为它超过了整数2,147,483,647的最大值

相关问题