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

IMC volta valor errado, percebi que ele estar funcionando normal, porém seu valor que volta não estar certo.

<meta charset="utf-8">

    <script>

function pulaLinha(){

    document.write("<br> <br> <hr> <hr>");
}

function mostra(frase){

    document.write(frase);
    pulaLinha();
}

function calculaImc(altura,peso){

return peso/(altura*altura);



}

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

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

    if(imc<18.5){
        mostra("você estar abaixo do recomendado");

    }

    if(imc>35){

        mostra("você estar acima do recomendado");
    }

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

    mostra("seu imc estar execelente");
}
        </script>
2 respostas
solução!

Oi, Jaqueline, tudo bem?

Muitas vezes nossas valores de alturas e peso não são número exatos, e sim, um valor decimal. Quando você utiliza o parseInt você está convertendo o número para um inteiro e o cálculo correto do imc não acontece da maneira correta, já que centímetros, por exemplo, no valor da altura fazem diferença. Então, para isso, utilizamos a propriedade parseFloat ela irá converter o valor digitado de string para um valor decimal, assim, permitindo que os valores após a ponto sejam computados no cálculo. Ficará dessa forma:

var alturaInformada = parseFloat(prompt(nome + " ,informe sua altura"));

    var pesoInformado= parseFloat(prompt(nome + "  ,informe seu peso"));

Para saber mais sobre o parseFloat: https://developer.mozilla.org/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/parseFloat

Qualquer dúvida é só falar!

muito obrigada Laís pela ajuda.