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

Resultado com apenas uma casa após a vírgula

O Math.round arredonda o número, mas no caso do IMC tem por exemplo o mínimo indicado de 18.5 e se eu quiser limitar a quantidade de caracteres depois da vírgula no número para que ao invés de exibir por exemplo 23.938989774631512 exiba apenas 23.9, tem como?

Segue meu código, eu utilizei coisas que já conhecia para melhorar o máximo possível.

<meta charset="utf-8">


<style type="text/css">
#corpo {
    text-align: center;
    font-size: 24px;
    font-family: Arial, Helvetica, sans-serif;
    padding-top: 20%;
}
</style>

<div id="corpo">
    <script type="text/javascript">

        function quebra() {
            document.write("<br><br>");
        }



        function mostrar(frase){
            document.write(frase);
        }

        function calcImc(peso, altura) {
            return peso / (altura * altura);
        }

        function resultado() {
            mostrar (nome + ", seu IMC é " + imc);
            quebra();
            if (imc < 18.5){
                mostrar(nome + ", seu IMC indica que você está abaixo do peso indicado.");
            } else if (imc > 18.5){ if (imc < 35 ) {
                mostrar(nome + ", seu IMC está dentro da média indicada.");
            }} else if (imc > 35) {
                mostrar(nome + ", seu IMC indica que você está com peso acima do indicado.");
            }
        }

        var nome = prompt("Olá! Como você se chama?");
        var peso = prompt("Para calcular seu IMC preciso saber qual o seu peso?");
        var altura = prompt("E quanto você tem de altura? Por favor utilize a medida em metros.");

        cafezinho = confirm("Pronto, agora só esperar alguns segundos enquanto trabalhamos no calculo. Você aceita um cafézinho enquanto isso?");
        if (cafezinho){
            alert ("Nossa, nem deu tempo, seu resultado já está pronto!");
        } else {
            alert ("Que pena, fica para a próxima!");
            alert ("Pronto! Seu restulado já está disponível!")
        }

        var imc = calcImc(peso, altura);

        resultado();



    </script>
</div>

E no caso da mensagem, é possível colocar uma cor nela? Por exemplo, se a pessoa estiver com IMC alto ou baixo a resposta vir vermelha e se tiver dentro do ideal ela vir verde, talvez chamando alguma classe css. Caso venhamos a aprender isso para frente, sem problemas, eu aguardo! haha

Obrigado pela atenção!

6 respostas
solução!

Ryendel, tudo bem ?

Tem como sim.

Você consegue usar uma função chamada toFixed, que todo numero decimal tem :

numero.toFixed(1);

Você passa o numero de casas que deseja no toFixed.

Abraços

Ah sim. No caso tenho que declarar uma nova variável e dela usar a função .toFixed(1); igual no código abaixo.

        var imcCalc = calcImc(peso, altura);
        var imc = imcCalc.toFixed(1);

Funcionou aqui. Obrigado! Sobre as cores do resultado tem alguma forma de alterar?

Você consegue fazer o elemento e fazer o seguinte :

campo.style.color = #CorQueVoceQuer

Desculpa, eu tentei aqui e realmente não consegui resolver. Teria como me explicar melhor?

Acabei de ver melhor aqui as coisas e vi que da forma que você está fazendo agora não vai dar para fazer.

Porque você não tem a página com elementos efetivamente.

Você está fazendo tudo em alerts e tals.

Mas não desanima não, um ponto bacana é você partir para html depois, lá você consegue fazer isso :D

Ah sim. Tudo bem. haha HTML e CSS já sei fazer, javascript que que estou começando a aprender agora. Obrigado pela ajuda!