3
respostas

Calculo não está correto

Segue meu código abaixo, o calculo não está sendo executado de maneira correta, apresentando resposta final igual ao peso.

meta charset="UTF-8">

3 respostas

Olá, Nilo, isso acontece porque o parseInt lê o valor como um número inteiro.

Por exemplo, o valor de 1.75 de altura é lido como 1. Por isso o resultado é o valor do peso, já que o denominador da equação resultará em 1.

Para resolver isso, deve-se utilizar o parseFloat, que considera casas decimais, assim:

<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("Informe o seu nome");
var alturaInformada = parseFloat(prompt(nome + ", informe sua altura"));
var pesoInformado = parseFloat(prompt(nome + ", informe seu peso"));

var imc = calculaImc(alturaInformada, pesoInformado);

document.write(nome + ", o seu IMC é " + imc);

</script>

Lembrando do comentário do instrutor Flávio (item 18 da aula 07):

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Espero ter ajudado. Bons estudos!

Perfeito, resolvido.

Quando o usuário digita sua altura com "," o calculo também fica errado, teria solução ?

Nilo, você pode utilizar o .replace(',' , '.'), assim:

parseFloat((prompt(nome + ", informe sua altura")).replace(',', '.'));

Espero ter ajudado. Bons estudos!