Ir para conteúdo

POWERED BY:

Arquivado

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

Snipper

Buscar valor aproximado

Recommended Posts

Recebo do form o valor 0,44Pessoal estou desenvolvendo um sistema para ser usando na engenharia e esse sistema eu preciso fazer alguns cálculos para achar os resultado, e o que ta pegando é o seguinte, a primeira parte do sistema ja esta pronta e ela me da um resultado que é por ex: 0,44 agora vamos ao problema, eu preciso pegar esse resultado e ver se ele existe em uma tabela de referencia que eu ja tenho cadastrada no mysql se ele existir ótimo ja esta resolvido basta eu acha lo e pegar o valor referente a ele, ate ai tudo bem, agora se el não existir na tabela de referencia eu preciso pegar os valores de 0,40 e 0,50 e fazer a interpolação para achar o valor exato de 0,44 então esse é meu problema eu preciso acha o valor máximo aproximado e minimo aproximando do valor que vem do form que eu pego via $_POST

 

Ilustração

 

Recebo do form o valor 0,44

 

Na tabela temos

0,43

0,44

0,45

0,46

 

Otimo so pegasmo o 0,44 e pronto

 

Agora se na tabela tiver

0,42

0,43

0,45

0,46

 

Problema eu preciso identificar o primeiro numero menor que 0,44 que é o 0,43 e o primeiro maior que é 0,45 vale lembrar que os numero não seguem uma ordem tipo 1 2 3 4 5 6, os valores da tabela são 0,0010, 0,0020, 0,0040 e assim pordiante ela esta em ordem crescente mais os valores não tem o passo constante

 

Desde ja agradeço a ajuda de todos

 

Att

 

Alexandre

 

Desde ja agradeço a ajuda de todos

 

Att

 

Alexandre

Compartilhar este post


Link para o post
Compartilhar em outros sites

And valor between round(0.44,2) and ( round(0.44,2) + .1)

 

 

Grosso modo seria isto , creio.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mota a grosso modo sim mais como fale a tabela não e constante por exemplo se eu tiver o 0,44 e na tabela tiver

 

0,30

0,31

0,39

0,40

0,60

 

se eu somar +1 não vai funcionar esse esta sendo meu grande problema porque entre 0,40 e 0,60 eu posso ter 20 resultados diferentes

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na realidade seria entre 0.40 e 0.50, arredonda .44 para a 2@ casa decimal ==> 0.40 , soma então 0.10 (decimal da 1@ casa acima) ==> 0.50, assim o where ficaria

 

And valor BETWEEN 0.40 AND 0.50

 

Eu talvez criasse uma function para calcular os dois valores.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Motta vlw pela ajuda ai consegui resolver o problema, segue o código em anexo caso alguém precise

 

 

$mi = $_POST['mi'];
 
$sql = mysql_query("SELECT p2p1, m0 FROM tabela WHERE p2p1 = '$mi'") or die(mysql_error());
$total = mysql_num_rows($sql);
    
 
if ($total == 1) {
        while($total=mysql_fetch_array($sql)){
echo "$total[p2p1] - $total[m0]";
   }
} else {
 
if ($total == 0) {
 
        $sql1 = mysql_query("SELECT * FROM tabela WHERE p2p1 < '$mi' ORDER BY p2p1 DESC LIMIT 1");
while($total=mysql_fetch_array($sql1)){
echo "$total[p2p1] - $total[m0]</br>";
   }
   $sql2 = mysql_query("SELECT * FROM tabela WHERE p2p1 > '$mi' ORDER BY p2p1 ASC LIMIT 1");
while($total=mysql_fetch_array($sql2)){
echo "$total[p2p1] - $total[m0]";
}
     }
  }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Problema eu preciso identificar o primeiro numero menor que 0,44 que é o 0,43 e o primeiro maior que é 0,45

 

Não atentei para isto ...

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.