Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

LFelipe

[Resolvido] comparação de numeros com ponto

Recommended Posts

ae pessoal, estou tentando fazer uma comparação (IF) entre um valor obtido atraves de um calculo e outro numero ja definido e como resposta emitir um alert.

 

o que estou fazendo é o calculo de IMC, onde a formula é peso/(alturaxaltura), e o resultado me da algo do tipo 25.605337891.

 

Fixei para por somente 2 casas decimais com fixTo(2), e beleza, o resulta é exibido numa boa, porem não consigo fazer esta comparação, pois qnd coloco os IFs não me mostra o resultado.

 

creio que seja alguma chupação de bala minha, mas não estou conseguindo encontrar.

 

o codigo completo do script é este:

 

function calcula(){
 peso=document.imc.peso.value;
 altura=document.imc.altura.value;
 
calc=peso/(altura*altura);
IMC=calc.toFixed(2);
   
document.imc.imc1.value=eval(IMC);

if (IMC < 18.5)
alert("Abaixo do peso ideal!")
else if (IMC > 18.5 and IMC < 24.9)
alert("Parabéns — você está em seu peso normal!");
else if(IMC > 25.0 && IMC < 29.9)
alert("Está acima de seu peso. SOBREPESO");
else if(IMC > 30.0 and IMC < 34.9)
alert("Está acima do peso. OBESIDADE GRAU 1");
else if(IMC > 35.0 and IMC < 39.9)
alert("Está acima do peso. OBESIDADE GRAU 2");
else (IMC > 40.0)
alert("Está acima do peso. OBESIDADE GRAU 3");
}

 

onde esta o erro???

 

valeu!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não há necessidade de especificar condição para o último else:

 

else (IMC > 40.0)
alert("Está acima do peso. OBESIDADE GRAU 3");

Esse (IMC > 40.0) é desnecessário!

 

Basta deixar assim (veja o código-fonte, devidamente estruturado):

 

<html>
<head>
	<title>IMC</title>

<script language="JavaScript">
function calcula(){
peso = document.imc.peso.value;
altura = document.imc.altura.value/100;

calc= peso/(altura*altura);
IMC = calc.toFixed(2);
   
document.imc.imc1.value = IMC;

if (IMC < 18.5) {
	alert("Abaixo do peso ideal!");
}else if (IMC > 18.5 && IMC < 24.9) {
	alert("Parabéns — você está em seu peso normal!");
}else if(IMC > 25.0 && IMC < 29.9) {
	alert("Está acima de seu peso. SOBREPESO");
}else if(IMC > 30.0 && IMC < 34.9) {
	alert("Está acima do peso. OBESIDADE GRAU 1");
}else if(IMC > 35.0 && IMC < 39.9) {
	alert("Está acima do peso. OBESIDADE GRAU 2");
} else {
	alert("Cuidado!!! Está muito acima do peso. OBESIDADE GRAU 3");
}

}
</script>

</head>
<body>
<form name="imc" action="" method="post">
Digite o seu peso: <input type="text" name="peso" value="">
<br>Digite a sua altura em cm: <input type="text" name="altura" value="">
<input type="button" value=" ok " onClick="calcula()">
<br><br><br><input type="text" name="imc1" value="">
</form>
</body>

Compartilhar este post


Link para o post
Compartilhar em outros sites

perfeito... funciounou na boa...

 

o unico detalhe, é que as vezes da o alert de OBESIDADE GRAU 3 qnd na verdade deveira ser de sobrepeso, isso acontece por exemplo qnd coloco a altura de 1.70 e o peso 72 kg.

 

mas muito obrigado!!!

 

problema resolvido.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ah sim... para corrigir o problema basta fazer o seguinte:

 

if (IMC < 18.5) {
	alert("Abaixo do peso ideal!");
}else if (IMC >= 18.5 && IMC < 25) {
	alert("Parabéns — você está em seu peso normal!");
}else if(IMC >= 25.0 && IMC < 30) {
	alert("Está acima de seu peso. SOBREPESO");
}else if(IMC >= 30.0 && IMC < 35) {
	alert("Está acima do peso. OBESIDADE GRAU 1");
}else if(IMC >= 35.0 && IMC < 40) {
	alert("Está acima do peso. OBESIDADE GRAU 2");
} else {
	alert("Cuidado!!! Está muito acima do peso. OBESIDADE GRAU 3");
}

Se achar melhor, basta mudar o igual de lugar!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.