[RESOLVIDO] Adição de BigInteger Além dos Long

5 respostas Resolvido
programaçãojava
L

Boa noite.
Tem como fazer adição de BigInteger, com números maiores que o limite de um Long?

5 Respostas

S

Sim, justamente esse o propósito das classes BigInteger e BigDecimal.
Dê uma olhada na documentação dessas classes, vai encontrar os métodos de soma, subtração, adição e multiplicação.

Se você tem equações muito complexas, recomendo que utilize a API javolution, as classes numéricas dessa API são muito mais rápidas e leves que o BigInteger e BigDecimal.

L

Não encontrei forma de somar sem usar números long. Conhece alguma?

S

Consultou a documentação?

L
<strong>Agora</strong>

Esse exemplo abaixo  a exceção Exception in thread “main” java.lang.NumberFormatException: Zero length BigInteger

Exemplo

BigInteger fator1 = new BigInteger(“9223372036854775807”);

BigInteger fator2 = new BigInteger(“9223372036854775807”);

BigInteger soma = new BigInteger("");

soma.add(fator1);

soma.add(fator2);
//long valor = Long.MAX_VALUE;
    System.out.println(soma);

Antes
Eu li a documentação apresentada dentro da IDE e, agora, consultei da Oracle pra ver se consta alguma diferença, entretanto não consigo ver uma possibilidade de somar valores maiores que o limite de long, sendo que o add() pede um long e quando adicionamos um valor, manualmente, ele pede uma string.

S
Solucao aceita

Claro, olha como você está instanciando seu BigInteger:

BigInteger soma = new BigInteger("");

Uma String vazia não é um número.

Deveria ser assim:

BigInteger soma = fator1.add(fator2);
Criado 8 de julho de 2018
Ultima resposta 8 de jul. de 2018
Respostas 5
Participantes 2