NumberFormatException выбрасывается при разборе целого числа

Я получаю следующее исключение, когда я выполняю следующий код

Integer.parseInt(1357679682162)+1

 INFO | jvm 1 | srvmain | 2013/01/08 22:22:09.496 | Caused by: java.lang.NumberFormatException: For input string: "1357679682162"
 INFO | jvm 1 | srvmain | 2013/01/08 22:22:09.496 | at java.lang.NumberFormatException.forInputString(Unknown Source)
 INFO | jvm 1 | srvmain | 2013/01/08 22:22:09.496 | at java.lang.Integer.parseInt(Unknown Source)
 INFO | jvm 1 | srvmain | 2013/01/08 22:22:09.496 | at java.lang.Integer.parseInt(Unknown Source)

person Saurabh Kumar    schedule 10.01.2013    source источник
comment
Какой реальный код? 1357679682162 не String   -  person amit    schedule 10.01.2013


Ответы (7)


Передаваемое вами число выходит за пределы диапазона целых чисел, который находится в диапазоне от -2 147 483 648 до 2 147 483 647.

person Renjith    schedule 10.01.2013

Это число слишком велико для целого числа. Целое число — это 32-битное значение, поэтому максимальное значение равно 2 147 483 647. Вместо этого попробуйте использовать long.

person partlov    schedule 10.01.2013

пытаться

Long.parseLong(1357679682162);
person Mohd Mufiz    schedule 10.01.2013

Значение Java Integer Max равно 2 147 483 647.

А вы пытаетесь разобрать 1357679682162.

person Adrián    schedule 10.01.2013

Разве число не слишком велико, чтобы поместиться в int? Диапазон int в java составляет от -2 147 483 648 до 2 147 483 647. Возможно, вам следует использовать вместо этого parseLong.

пытаться

Long.parseLong(1357679682162)+1
person Aditi    schedule 10.01.2013

Номер слишком длинный.

Целое число должно быть меньше 2 ^ 31 = 2147483646

http://docs.oracle.com/javase/1.4.2/docs/api/java/lang/Integer.html

person THarms    schedule 10.01.2013

Проверьте себя с помощью приведенного ниже кода и используйте подходящий тип для своего решения.

System.out.println(Integer.MAX_VALUE);
System.out.println(Long.MAX_VALUE);
person Naveenkumar K    schedule 10.01.2013