3
respostas

O programa está calculando o IMC errado (resolvido)

<meta charset="UTF-8">

<script>

    function pulaLinha() {

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

}

    function mostra(frase) {

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

    function calculaImc(altura, peso) {
        return peso / ( altura * altura );

    }

    //var nome = prompt("Qual seu nome?")
    var alturaInformada = parseInt(prompt("Informe sua altura"));
    var pesoInformado = parseInt(prompt("Informe seu peso"));
    var imc = calculaImc(alturaInformada, pesoInformado);

    mostra(imc)

</script>

Quando eu insiro dados para uma pessoa com 1,60 m e 50 kg calcula o IMC em 50... não sei porque não está fazendo a conta peso/(altura^2)

3 respostas

Olá, Andrea! Como vai?

O problema está em

    var alturaInformada = parseInt(prompt("Informe sua altura"));
    var pesoInformado = parseInt(prompt("Informe seu peso"));

No caso, a função parseInt() retorna um inteiro, ou seja, a sua variável alturaInformada está recebendo o valor 1.

Tente usando parseFloat():

var alturaInformada = parseFloat(prompt("Informe sua altura"));
var pesoInformado = parseFloat(prompt("Informe seu peso"));

Assim, as variáveis alturaInformada e pesoInformado receberão os valores decimais também.

Outra coisa: lembre-se de quando preencher colocar 1.6 e não 1,6.

Espero ter ajudado ;D

Entendi, obrigada pela dica do parseFloat()

A ideia de colocar essa função veio da minha curiosidade de testar se ele converteria "1,60" para "1.6", mas pelo visto, não faz isso

Por nada, Andrea!

Precisando estamos a disposição.

Ah, vi que você colocou no título "(resolvido)".

Caso minha resposta tenha te ajudado mesmo, você poderia estar marcando minha resposta como solução?

Abraços.

Bons estudos!