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">
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">
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):
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!