Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Quando uso parseInt pq meu Imc da diferente se sao numeros do msm jeito?

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

    var imc = calculaImc(alturaInformada, pesoInformado);
    mostra(nome + ", o seu IMC é " + imc); 


    if(imc < 18.5) {

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

    if(imc > 35){

        mostra("Você está acima do recomendado");
    }

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

        mostra("Seu imc está excelente!");
    }
</script>
1 resposta
solução!

Oi, João!

Não tenho certeza do que pode ter acontecido, mas imagino que você tenha experimentado usar os prompts sem o parseInt e o resultado deu outra coisa. Se for isso, é porque o parseInt converte aquilo que foi digitado no prompt em número inteiro. Quando usamos o prompt sem ele, o valor digitado vira um texto comum.

Por exemplo, imagine que eu tenho o seguinte código:

<meta charset="UTF-8">
<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    var teste = parseInt(prompt("Insira qualquer número"))

    mostra(teste + 3);

</script>

O valor de "teste + 3" será 6, já que a função parseInt converteu o texto digitado em um número inteiro.

Agora, experimente esse código:

<meta charset="UTF-8">
<script>
    function pulaLinha() {
        document.write("<br>");
    }

    function mostra(frase) {
        document.write(frase);
        pulaLinha();
    }

    var teste = prompt("Insira qualquer número")

    mostra(teste + 3);

</script>

Você vai notar que a soma de "teste + 3" vai resultar em 33 ao invés de 6. Isso porque, já que, teoricamente, o valor digitado não está sendo reconhecido como número, ele foi tratado com um texto normal, ou seja, ele apenas juntou dois textos.