1
resposta

[Dúvida] ICM está repetindo o peso no resultado

Em algumas situações o resultado (mostra) está repetindo o que eu coloco no campo peso (prompt). Repara... por exemplo... altura: 1,90, peso: 92, no resultado repete o 92.

<meta charset="UTF-8">

<script>

    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    function calculaImc(altura, peso) {

        return peso / (altura * altura);
    }

    var nome = prompt("Informe o seu nome");
    var alturaInformada = parseInt(prompt(nome + ", informe sua altura"));
    var pesoInformado = prompt(nome + ", informe seu peso");

    var imc = calculaImc(alturaInformada, pesoInformado);

     mostra(nome + ", o seu IMC é " + imc);

    if(imc < 18.5) {

    mostra("Você está abaixo do recomendado")

    }

    if(imc >= 18.5 && imc <= 35) {

    mostra("Seu IMC está excelente!");

    }

    if(imc > 35) {

    mostra("Você está acima do recomendado");
    }

</script>
1 resposta

Boa tarde, Diego. Testei com os parâmetros que você colocou acima e deu certo. Acredito que a questão possa ser você ter escrito a altura colocando a vírgula. Pelo seu código, a altura está sendo armazenada como Inteiro, aí o valor retorna null e o resultado acaba sendo o peso. Escrevendo os valores em centímetros "por extenso" (190) o IMC é calculado certinho.

Testa aí e vê se funciona. Outra solução é você tornar a variável inteira em uma variável Float para permitir frações.

Espero que tenha ajudado, abração.