J'essaie de lire de très grands nombres depuis l'entrée standard et de les additionner.
Toutefois, pour ajouter à BigInteger, je dois utiliser 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)));
}
Cela fonctionne bien, mais comme le BigInteger.valueOf()
ne prend qu'un long
Je ne peux pas additionner des nombres plus grands que long
(9223372036854775807).
Chaque fois que j'essaie d'ajouter 9223372036854775808 ou plus, j'obtiens une NumberFormatException (ce qui est tout à fait attendu).
Y a-t-il quelque chose comme BigInteger.parseBigInteger(String)
?