[RESOLVIDO] Erro Divisão por zero em operação de logaritmo binario

2 respostas
NewAge

Está aparecendo a seguinte menssagem de erro java.lang.ArithmeticException: / by zero

e aponta para o seguinte trecho do codigo:

case(0x1)://Logaritmo binario ((Z = log Entx na base 2)) Saiz = ((long) Math.log(Entx)/ (long)Math.log(2)); //log natural de Entx dividido por log natural de 2 mem.set_Memoria(0x2002,Saiz); break;

2 Respostas

Ataxexe

NewAge:
Está aparecendo a seguinte menssagem de erro java.lang.ArithmeticException: / by zero

e aponta para o seguinte trecho do codigo:

case(0x1)://Logaritmo binario ((Z = log Entx na base 2)) Saiz = ((long) Math.log(Entx)/ (long)Math.log(2)); //log natural de Entx dividido por log natural de 2 mem.set_Memoria(0x2002,Saiz); break;

Math.log(2) é aproximadamente 0,30. Como você faz um cast para long, isso dá 0 e por isso você tem o erro de divisão por zero. Por que você não faz o cast depois da divisão?

Saiz = (long) (Math.log(Entx)/ Math.log(2));
NewAge

problema resolvido
Muito obrigado!

Criado 23 de agosto de 2013
Ultima resposta 23 de ago. de 2013
Respostas 2
Participantes 2