1
resposta

Alerta para quando tentar dividir por 0

Bom dia pessoal , tudo bem?

Tenho um dúvida, estou fazendo um projeto de calculadora, e a principio está tudo certo, porém estou empacado em como impedir que seja feita uma divisão por 0.

no momento atual, quando é feito uma divisão por 0, o resultado retorna como "Infinity", eu gostaria que ao fazer a conta, identifique que está sendo feito uma divisão por 0, alegue que não é possível e limpe a tela.

Sou iniciante em JS, gostaria de uma luz de como fazer. Agradeço a todos

Por favor me informem se faltou informação.

Abaixo código JS:

/* Inserir Digito */
function insert(num) {
    var numero = document.getElementById('Resultado').innerHTML;
    document.getElementById('Resultado').innerHTML = numero + num;
}

/* Limpar digitos */

function clean() {
    document.getElementById('Resultado').innerHTML = "";
}

/* Apagar digito */

function DEL() {
    var resultado = document.getElementById('Resultado').innerHTML;
    document.getElementById('Resultado').innerHTML = resultado.substring(0, resultado.length - 1)
}

/* Faz a operação */

function conta() {
    var resultado = document.getElementById('Resultado').innerHTML;
    if (resultado) {
        document.getElementById('Resultado').innerHTML = eval(resultado);
    }

    if (resultado == "") {
        alert("Campo vazio")
    }
}
1 resposta

Oi Arthur, tudo bem?

Desculpe a demora em retornar.

Para evitar que o usuário faça uma divisão por zero, você pode verificar se o valor do denominador é zero antes de realizar a operação. Se o denominador for zero, você pode exibir uma mensagem de erro e limpar o campo de resultado.

Para fazer isso, você pode modificar a função conta() da seguinte maneira:

function conta() {
    var resultado = document.getElementById('Resultado').innerHTML;
    if (resultado) {
        // verifica se a expressão contém uma divisão por zero
        if (resultado.includes('/0')) {
            alert("Não é possível fazer divisão por zero!");
            clean();
        } else {
            // realiza a operação
            document.getElementById('Resultado').innerHTML = eval(resultado);
        }
    }

    if (resultado == "") {
        alert("Campo vazio")
    }
}

Nessa nova versão da função conta(), é feita uma verificação na expressão digitada pelo usuário para detectar se há uma divisão por zero, usando o método includes() para procurar a string '/0' (denominador igual a zero).

Se for encontrada uma divisão por zero, é exibida uma mensagem de erro e a função clean() é chamada para limpar o campo de resultado. Caso contrário, a operação é realizada normalmente.

Lembre-se de que a função eval() pode ser perigosa se não for usada com cuidado, pois pode executar código malicioso se a expressão contiver código malicioso. Portanto, certifique-se de validar e sanitizar a entrada do usuário antes de usá-la em uma expressão a ser avaliada.

Um abraço e bons estudos.