3
respostas

O meu deu erro

Já verifiquei e não conseguir encontrar o erro, ele não calcula o IMC dá este erro: NaN

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

var imc = calculaImc(alturaInformada, pesoInformado);

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

</Script>

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

3 respostas

Boa noite. Copiei seu código para teste e funcionou no meu. Será que não é o jeito que você esta inserindo os dados?

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

Boa noite, Valmir!

Imagino que o erro esteja na hora em que você recebe os valores de altura e peso do usuário. Porque, por padrão, a função prompt recebe os valores como texto (ou string). E com isso, ao realizar as operações matemáticas dentro de sua função calculaImc, você obtém o retorno de "NaN" (not a number).

Para corrigir isso, basta forçar que os dados de altura e peso do usuário sejam convertidos para um número. Você pode fazer isso utilizando a função parseInt. Por exemplo:

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

Realize esse teste e veja se deu certo!

Boa noite, Leonardo e Josemar!

Na verdade os códigos estavam corretos, o que acontecia, quando solicitava na HTML para digitar o meu PESO e ALTURA, eu digitava com ( vírgula) (,) e não com o ponto (.), isso gerava este erro, NaN.

Obrigado pela dica