2
respostas

O por que que meu código, nesse caso, não se torna funcional , se a unica alteração que fiz foi colocar "parseInt" antes do "prompt".

<meta charset="UTF-8">

<script>

function jump(){
    document.write("<br>");
}
function mostrar(frase){

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

function calculaImc(peso,altura){

    return peso/(altura*altura);
}


var nome = prompt("Qual é seu nome?");
var peso = parseInt(prompt(nome + ", Informe seu peso"));
var altura = parseInt(prompt(nome + ", Informe sua altura."));
var imc = calculaImc(peso,altura);

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






</script>    
2 respostas

ao tirar o "parseInt" ele faz o calculo na ordem correta.

Olá Lucas, como está?

O problema é justamente o parseInt, quando você arredonda o calculo do IMC acontece um bug visto que o resultado da operação devolve um número com ponto flutuante, neste caso para corrigir seu código basta substituir a função parseInt() por parseFloat() dessa forma:

    var peso = parseFloat(prompt(nome + ", Informe seu peso"));
    var altura = parseFloat(prompt(nome + ", Informe sua altura."));

Qualquer dúvida só perguntar.