3
respostas

Resultado esquisito se utilizo a instrução parseInt

Pessoal, bom dia! Por gentileza, montei o código abaixo, e tentei utilizar a instrução parseInt, juntamente com o prompt. Porém, com o prompt sozinho, obtenho resultados corretos. Já com o parseInt, obtenho resultados totalmente esquisitos...rsrs Tentei utilizar o parseInt nas variáveis alturaInformada e pesoInformado. Qual o problema? :) Grato desde já pela ajuda.

<meta charset="UTF-8">

<script type="text/javascript">

    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 (utilize ponto): ");
var pesoInformado = prompt(nome + ", informe seu peso: ");
var imc = calculaImc(alturaInformada, pesoInformado);
document.write(nome + ", seu IMC é " + Math.round(imc) + "." + "<br>");

if(imc < 18.5) {

    mostra("Você está abaixo do recomendado pela OMS!");
}

if(imc >= 18.5 && imc <= 24.9) {

    mostra("Seu IMC está excelente!");
}

if(imc >= 24.9 && imc <= 29.9) {

    mostra("Seu IMC indica Sobrepeso!");
}

if(imc >= 30 && imc <= 34.9) {

    mostra("Seu IMC indica Obesidade Grau 1!");
}

if(imc >= 35 && imc <= 39.9) {

    mostra("Seu IMC indica Obesidade Grau 2!");
}

if(imc > 40) {

    mostra("Seu IMC indica Obesidade Grau 3!")
}

</script>
3 respostas

Oi pessoal. Alguém poderia me ajudar? :)

Opa, Marcos! Tudo bem contigo?

Desculpe a demora em dar um retorno

Quando é utilizado o parseIntvocê estará transformando o dado inserido em um número inteiro. Logo, não respeitará os decimais. Por isso a diferença de resultados ;-)

Espero ter contribuído, Marcos!

Um abraço e bons estudos

Oi Cássio!

Boa tarde, tudo bem, e você?

Não se preocupe. :)

Muito obrigado. Entendi.

Abraços!