在Java中,60亿不能被识别为整数?

Aay*_*jan 1 java

我有问题,当我尝试存储6000000000在一个int变量.

这是我遇到问题的脚本的一部分:

Scanner x = new Scanner(System.in);
System.out.println("Please enter a number here:");
int k = x.nextInt();
System.out.println(k);
Run Code Online (Sandbox Code Playgroud)

当我输入6000000000输出应该是相同的,但输出是这个错误:

Exception in thread "main" java.util.InputMismatchException: For input string: "6000000000"
    at java.util.Scanner.nextInt(Unknown Source)
    at java.util.Scanner.nextInt(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

这是什么?怎么预防这个?

Kep*_*pil 8

值太大,java ints只能保存-2,147,483,648到2,147,483,647的值.

long改用.

  • ......一旦`BigInteger`变得太短,就买更多的RAM (6认同)
  • 一旦`long`变得太短,就用'double` (2认同)
  • ......一旦双倍变得太短,就使用`BigInteger` :-) (2认同)
  • 我想在*home*和*assylias*建议之间,你应该开始考虑为什么你需要这么大的数字......:P (2认同)