Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Alguém sabe porque o meu resultado do IMC sai errado? Ele começou a da errado depois que coloquei o parseInt; mas quero saber o motivo.

<meta charset="UTF-8">

<script>
    function pulaLinha() {
        document.write("<br>");
    }
    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }
    function calculaImc(peso, altura) {
        return peso /(altura * altura);
    }

        var peso = parseInt(prompt("Insira seu peso."));
        var altura = parseInt(prompt("Insira sua altura."));
        var imc = calculaImc(peso, altura);

    if(imc >= 18.5 && imc < 35) {
        mostra("Seu IMC deu " + imc + " ele está bom.");
    }
    if(imc < 18.5) {
        mostra("Seu IMC deu " + imc + " está menor que o recomendado.");
    }
    if(imc > 35) {
        mostra("Seu IMC deu " + imc + " está maior do que o recomendado, você precisa perder peso.");
    }

</script>
1 resposta
solução!

Fala Jonison, tudo certo?

Dá errado porque a altura é em metros então imagina que a pessoa mede 1,80m. Quando você faz o parseInt(1.80) o resultado da conversão vai ser 1 (número inteiro), as casas decimais serão desprezadas. O mais adequado para este contexto é você usar o parseFloat.

Abraço