PROBLEMA EM CÁLCULO COM JAVASCRIPT

 Tópico anterior Próximo tópico Novo tópico

PROBLEMA EM CÁLCULO COM JAVASCRIPT

ASP.NET

 Compartilhe  Compartilhe  Compartilhe
#492212 - 13/01/2020 21:18:43

KELLY
BRASILIA
Cadast. em:Setembro/2009


Olá a todos!

Estou fazendo um pequeno projeto usando Javascript, porém ele está apresentando problema na comparação dos resultados.
O valor obtido em IMC está sendo fracionado e dentro da estrutura condicional estou informando um número inteiro.
Tentei utilizar parseInt(), mas o código não rodou. Como comparar estes valores de formatos diferentes para que a estrutura condicional funcione corretamente?

Segue o código abaixo:

  
function calcularIMC() {
    var formulario = document.getElementById("formulario");

    var kilos = parseInt(formulario.kilos.value);
    var metros = parseInt(formulario.metros.value);
    var centimetros = parseInt(formulario.centimetros.value);

    var altura = (metros * 100 + centimetros) / 100;

    var imc = kilos / (altura * altura);
    
    formulario.imc.value = imc.toFixed(2);
    
    if(imc <= 20)
        alert("Abaixo do Peso")
        /* else if(parseInt(imc) => 20 && parseInt(imc) <= 25) */
    else if(imc => 20 && imc <= 25)
        alert("Peso Ideal");
    else if(imc >= 25 && imc <= 30)
        alert("Sobrepeso");
    else if(imc >= 30 && imc <= 35)
        alert("Obesidade Moderada");
    else if(imc >= 35 && imc <= 40)
        alert("Obesidade Severa");
    else if(imc >= 40 && imc <= 50)
        alert("Obesidade Mórbida");
    else
        alert("Super Obesidade");
}






#492214 - 13/01/2020 21:44:54

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Última edição em 13/01/2020 21:45:30 por FABRICIOWEB

quais os valores esta recebendo cada um?
posta um exemplo
   var kilos = parseInt(formulario.kilos.value);
    var metros = parseInt(formulario.metros.value);
    var centimetros = parseInt(formulario.centimetros.value);



#492215 - 13/01/2020 21:51:04

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


um exemplo de calculo imc

<!DOCTYPE html>
<html>
<body>

<script type="text/javascript">
function calcula_imc(){
var altura = document.imcForm.altura.value;
var peso = document.imcForm.peso.value;

var quadrado = (altura * altura);

var calculo = (peso/quadrado);

if(calculo<18.5){
alert("Você está magro com esse indice: " + calculo);
}
else if(calculo>=18.5 && calculo<24.9){
alert("Você está normal com esse indice: " + calculo);
}

else if(calculo>=25 && calculo<29.9) {
alert("Você está com sobre peso com esse indice: " + calculo);
}
else if(calculo>=30 && calculo<39.9) {
alert("Você está com obesidade com esse indice: " + calculo);
}
else if (calculo>40)
alert("Você estácom obesidade grave com esse indice: " + calculo);
}

</script>

<title>Documento sem título</title>
</head>

<body>

<form name="imcForm" id="imcForm" action="#">

<p>
Altura<br />
<input type="text" id="altura" name="altura" />
</p>

<p>Peso <br />
<input type="text" id="peso" name="peso" />
</p>

<p>
<label>
<input type="radio" name="sexo" value="opção" id="sexo_0" />
Masculino</label>
<br />
<label>
<input type="radio" name="sexo" value="opção" id="sexo_1" />
Feminino</label>
</p>
<p><input name="Enviar" type="submit" value="Calcular" onclick="calcula_imc()" />
</p>
</form>

</body>
</html>



Resposta escolhida #492216 - 13/01/2020 22:17:10

KERPLUNK
RIO GRANDE DO SUL
Cadast. em:Junho/2009


Membro da equipe
Do mesmo jeito que transformou(parse) dos valores do formulario, faça com os condicionais:

if(parseInt(imc) <= 20)
        alert("Abaixo do Peso")
        /* else if(parseInt(imc) => 20 && parseInt(imc) <= 25) */
    else if(parseInt(imc) => 20 && imc <= 25)


_______________________________________________________________________
Virei Oráculo!
The end is nigh, be ready for the nukes!


#492218 - 14/01/2020 16:14:58

KELLY
BRASILIA
Cadast. em:Setembro/2009


Fabrício, o valor fracionado começa na linha var imc = kilos / (altura * altura);. Ele está correto, o problema é na estrutura condicional que não passa nos testes.
Kerplunk, deu certo o seu exemplo.

Obrigada a todos por ajudarem!





 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por KELLY em 14/01/2020 16:15:17