NumberFormatException при построении BigInteger из результата Math.pow - PullRequest
0 голосов
/ 28 сентября 2018

Я пытаюсь работать с некоторыми большими целочисленными значениями, но у меня возникают некоторые проблемы при инициализации моей переменной BigInteger.Я делал:

        BigInteger x = new BigInteger("" + (Math.pow(2, n)));

Где n - это какое-то число в сотнях, но это вызывает исключение NumberFormatException.Я не думаю, что могу использовать BigInteger, Valueof (), потому что это занимает много времени, которое я не считаю достаточно большим.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 28 сентября 2018

Так или иначе Math.pow возвращает значение типа double, которое будет отформатировано с десятичным разделителем.BigInteger не может принимать десятичные значения.

Броски:
NumberFormatException - val не является допустимым представлением BigInteger.

Просто используйте метод pow, предоставленный BigInteger

BigInteger x = BigInteger.TWO.pow(n);
...