Ir ao conteúdo

Posts recomendados

Postado

Estou utilizando este if para condicionar o número antes de calcular o imc, mas não esta dando certo, alguém consegue ver algum erro?

<?php

 if(is_int($_POST["altura"]) == true){
   $calc = $valtura/100;
 } else{
  $calc = $valtura;
 }
 
 $imc= $vpeso/($calc*$calc);



?>

 

  • Moderador
Postado

@Jhon Macedo

Mas o problema não era que não exibia o resultado?

Acredito que não tem problema em fazer aquele bloco do IF, pois você faz a seguinte verificação:

 

Se o valor recebido por POST, for um inteiro, o valor sera divido por 100.  Ou seja, vai adicionar uma vírgula, fazendo com que o valor fique do tipo float/double, senão a condição do else, faz com que o valor fique como ele veio.

 

Só que há um problema ali que só foi notar agora que estou escrevendo esta resposta.

Você testa o valor recebido diretamente com a palavra chave.  Mas em momento algum você atribuiu ela a  uma variável.

Logo não haveria nenhum valor para calcular. 

 

Para resolver, basta atribuir uma variável e usa-la no cálculo:

//recebe o valor do campo input
$altura = $_POST["altura"];
$peso   = $_POST["peso"];

//testa se a aultura em inteiro ex: 170
if(is_int($altura) == true):
   //armazena em uma variável o valor com "virgula"
   $calc = $altura/100;
   //exibe em tela o cálculo do imc.
   echo $imc = $peso/($calc * $calc);
	
else:
  //aqui só faz esta linha porque a altura será 1.70
  echo $imc = $peso/($altura * $altura);   	
endif;
 
 

Indo mais além, você pode otimizar isso separando em uma função o cálculo de conversão e usar o bloco de IF ternário:

 

$altura = $_POST["altura"];
$peso   = $_POST["peso"];

echo $imc = (is_int($altura) == true) ? $peso / pow(converteAltura($altura),2) : $peso/pow($altura,2);


function converteAltura($altura){
   return $altura/100;
}

 

 

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!