Как сделать переполнение целочисленного значения, если целое число получено из Integer.parseInt ("2147483647"); - PullRequest
0 голосов
/ 04 июня 2019

Давайте рассмотрим строки кода ниже.

1- int ExA = Integer.parseInt("123");
2- int ExB = Integer.parseInt("2147483660");

если мы выполним строку 1, переменная ExA будет успешно заполнена 123

но если мы выполним строку 2, мы получим «NumberFormatException», потому что в строке 2 число, предоставленное функции «parseInt», выходит за пределы диапазона int.

Я ищу решение, в котором я могу получить переполненное значение int, если у нас есть число в строковом формате, значение которого выходит за пределы диапазона int. Пожалуйста, помогите мне разобраться.

Ответы [ 2 ]

3 голосов
/ 04 июня 2019

Вместо этого вы можете использовать BigInteger.

BigInteger ExB = new BigInteger("2147483660");

Что касается документов JDK,

BigInteger должен поддерживать значения в диапазоне от -2 ^ Integer.MAX_VALUE (эксклюзив) до + 2 ^ Integer.MAX_VALUE (эксклюзив) и может поддерживать значения за пределами этого диапазона.Диапазон возможных простых значений ограничен и может быть меньше полного поддерживаемого положительного диапазона BigInteger.Диапазон должен быть от 1 до 2 ^ 500000000

0 голосов
/ 04 июня 2019

BigInteger иногда бесполезен для реализации.Вы можете получить long и просто набрать Long.parseLong("2147483660"), если оно не превышает 2 ^ 64.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...