Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

O que acontece se você tentar dividir um número inteiro por 0? E por 0.0?

O que acontece se você tentar dividir um número inteiro por 0? E por 0.0?

int i = 5;
double x = 1;
x = i/0;
System.out.println(x);

No primeiro teste o resultado foi Exception in thread "main" java.lang.ArithmeticException: / by zero. Até aí tudo bem.

No segundo não ocorreu erro e o valor da variável foi impresso como "Infinity". Por que não ocorreu erro?

int i = 5;
double x = 1;
x = i/0.0;
System.out.println(x);
2 respostas
solução!

Olá, Ambos são operações de divisão por zero. Contudo, para os números inteiros é um resultado e para reais, outro. Para números reais, perceba que o valor tende ao infinito. Qualquer operação com infinito, dá infinito. Dê uma olhada:

https://pt.m.wikipedia.org/wiki/Divisão_por_zero

Felipe Júnior, se pensarmos em Integer, de 0 até 1, só existem 2 possibilidades (0 ou 1). Agora , usando o Float (no seu caso double), se formos pensar da mesma forma, entre 0 e 1, existem n números (0,1; 0,2). Com o cálculo do 0, se formos usar float, sempre irá ter um número que tende ao zero. Ou seja, chega bem próximo de 0 mas não é o próprio 0. Ex : {0; 0,0 ; 0,00; 0,000; 0,0000}. Por isso, o Java representa esta sua solicitação com o "infinity". Valeu!