Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Viva.
Pessoal tenho que fazer uma contagem mas não tou a conseguir fazer como pretendo.
É assim. Imaginemos que os cálculos de uma determinada formula dá o valor 12.43.
Eu quero saber qual é o valor mínimo e o valor máximo mediante o valor dado na fórmula. O resultado teria que ser valmin = 10 e val máximo = 15, porque 12.43 está entre estes dois números.
A contagem é feita de 5 em 5, mas quero que seja infinitamente. ou seja de 0 até um numero infinito
Queria uma fórmula para calcular isto.
Obrigado
<?php
$num = 12.43;
$min = round($num);
if($min % 5 == 0) // testa se é divisor de 5
echo 'informado '.$num.' Mínimo '.$min;
else // se não for, ele devolve o número divisor de 5 mais próximo
echo 'informado '.$num.' Mínimo '.($min - ($min % 5));
?>
Pensando no algorímo para pegar o máximo.Obrigado William Bruno.
Eu estava a tentar mas por ciclos.
Não me lembrei da divisão.
Boa. Tks
Acho que com o ROUND ele daria problemas como decimais acima de 5.
Enfim, segue outro codigo para ajudar:
$Intervalo = 5; //Intervalo. Exemplo de 5 em 5 para o valor 5
$Valor = 59; //Valor a ser calculado
$FaixaValor = floor($Valor / 5); //Arredonda para baixo
$Comecar = floor($FaixaValor * $Intervalo); //Arredonda para baixo
$FaixaInicio = $Comecar;
$FaixaFim = $Comecar + $Intervalo;
echo 'Valor entre'.$FaixaInicio.' e '.$FaixaFim;Eu testei com:
informado 27.89 Mínimo 25
Parece funcionar.
Obrigado.
Testei o do William aqui tambem e está 100%.
Da pra escolher ai....fico com 2 opcoes...rs...
Abraços
Acho que com o ROUND ele daria problemas como decimais acima de 5.
Hum.. realmente.. :unsure: Ficou meio complicado o algorítimo que fiz aqui..
Usa o script do Thomazelli http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif
<?php
$num = 21.93;
$min = floor($num); //estava errado com o round
echo 'informado '.$num.' Mínimo '.($min - ($min % 5)).' Máximo ';
echo minMax( $min, $num );
function minMax( $min, $num ) //reaproveitar código
{
if(($min - ($min % 5)) < round($num,-1))
{
$max = round($num,-1);
return $max;
}
else
{
$max = round($num,-1)+5;
return $max;
}
}
?> ^^ precisei arrumar o round.Boa William, ficou massa a funcao... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif
Cara, uma forma de voce fazer isso na UNHA
$Intervalo = 5; //Intervalo. Exemplo de 5 em 5 para o valor 5
Acho que e isso...