Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Função parseInt não entende números decimais?

<meta charset="UTF-8">

<script>


    function puloLinha() {

        document.write("<br>")

    }

    function mostra(fease) {

        document.write(fease); 
        puloLinha(); 
        puloLinha();   

    }

    function calculaImc (peso, altura) {
        return peso/(altura*altura); 

    }

    function perguntaNumero (texto) {
      return **parseInt**(prompt(texto));
    }

    alert("Programa Calcula IMC - PCI");

    var nome = prompt("Hey, olá. Pode me informar seu nome?");
    var peso = perguntaNumero(nome+", pode me informar seu peso?");
    var altura = perguntaNumero(nome+", e sua altura, qual é?");

    var imc = peso/(altura*altura)

    mostra (nome+", o seu imc é: "+Math.round(imc)+".");

    if (imc>35) {
        mostra("Seu imc está a cima do recomendável.");
    }

    if (imc<18.5) {
        mostra("Seu imc está abaixo do recomendável.");
    }
     if (imc>18.5 && imc<35) {
        mostra("Seu imc está excelente!");
    }





</script>

Quando tento aplicar o comando parseInt o programa retorna o peso como resposta. Percebi que o comando desconsidera os números decimais. Sei que esse programa não necessita desse comando, mas a dúvida é, casa eu precisasse trabalhar com números decimais tem algum outro comando que faz o mesmo do parseInt` mas que entendo ou números decimais?

3 respostas
solução!

Oi Rafael, tudo bem?

Para trabalhar com números decimais, a função é a parseFloat().

Ao invés de usar parseInt(), que converte para integer, use parseFloat() para converter para float ou apenas o construtor Number(), que serve para os dois.

Funcionou muito bem! Obrigado pela ajuda, Erick.