Я пытаюсь прочитать некоторые действительно большие числа со стандартного ввода и сложить их.
Однако, чтобы добавить в BigInteger, мне нужно использовать BigInteger.valueOf(long);
:
private BigInteger sum = BigInteger.valueOf(0);
private void sum(String newNumber) {
// BigInteger is immutable, reassign the variable:
sum = sum.add(BigInteger.valueOf(Long.parseLong(newNumber)));
}
Это работает нормально, но поскольку для этого BigInteger.valueOf()
требуется только a long
, я не могу складывать числа, превышающие long
максимальное значение (9223372036854775807).
Всякий раз, когда я пытаюсь добавить 9223372036854775808 или больше, я получаю NumberFormatException (что вполне ожидаемо).
Есть что-то вроде BigInteger.parseBigInteger(String)
?