Então, para teste eu usei a conversão, mas os valores são obtidos na verdade do banco de dados, eu criei o campo de valor do tipo numeric com 4 casas decimais, mas no sistema eu utilizo apenas para 2 (pelo displayformat dos campos da tabela dentro do delphi) sera que isso pode ser um dos problemas? e para comparação utilizo a seguinte maneira:
if dm.auxrecebervlreceber.asfloat > dm.auxrecebervlreceber.asfloat then ... comparando assim também pode apresentar problema? o meu banco de dados é o firebird. Obrigado por todos que me ajudaram até aqui, irei testar as respostas nos amigos. Grato Att Att Eduardo Melo 4º Sistemas de Informação - Bacharelado www.meloshospedagem.com.br 2009/11/15 Leandro <mutu...@yahoo.com.br> > > > Amigo isso eh uma coisa complicada no delphi, se procurar nos historicos > ira > ver muitas respostas.. > > eu criei uma função para comparar qualquer coisa desde inteiro ate float o > numero 4 na função eh a quantidade de casas decimais q a mesma ira comparar > despresando o restante das casas se quiser mais aumente ou diminua.. > > outra solucao q acho q daria certo eh declarar a variavel como extended soh > q as vezes vc precisara comparar valores em um componente ai ja nao > serviria > > // Retorna -1 quando o primeiro valor eh maior, 0 quando sao iguais, 1 > quando o segundo valor eh maior.. agora vc podera usar em qualquer tipo de > situacao.. tem uma funçao no delphi q faz isso tbm mas n lembro se ela nao > serviu pois faz muito tempo q tive esses problemas e q fiz essa funcao > Function Compara(Valor1,Valor2 :Variant): Integer; > Var > Pos1, Pos2: Integer; > Aux1, Aux2: Variant; > > Begin > > Valor1 := FloatToStr(Valor1); > Valor2 := FloatToStr(Valor2); > > Pos1 := Pos('.',Valor1); > If Pos1 > 0 Then Aux1 := StrToInt(Copy(Valor1,1,Pos1-1) > ) > Else Aux1 := StrToInt(Valor1); > > Pos2 := Pos('.',Valor2); > If Pos2 > 0 Then Aux2 := StrToInt(Copy(Valor2,1,Pos2-1)) > Else Aux2 := StrToInt(Valor2); > > If Aux1 - Aux2 < 0 Then Result := -1 > Else If Aux1 - Aux2 > 0 Then Result := 1 > Else > Begin > > If Pos1 <> 0 Then Aux1 := Copy(Valor1,Pos1+1,4) > Else Aux1 := 0; > > If Pos2 <> 0 Then Aux2 := Copy(Valor2,Pos2+1,4) > Else Aux2 := 0; > > While (Length(Aux1) < 4) And (Aux1 <> 0) do > Aux1 := Aux1 + '0'; > > While (Length(Aux2) < 4) And (Aux2 <> 0) do > Aux2 := Aux2 + '0'; > > If Aux1 - Aux2 = 0 Then Result := 0 > Else If Aux1 - Aux2 < 0 Then Result := -1 > Else If Aux1 - Aux2 > 0 Then Result := 1 > Else Result := 0; > > End; > > End; > > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Att Eduardo Melo 4º Sistemas de Informação - Bacharelado www.canaldevenda.com www.meloshospedagem.com.br [As partes desta mensagem que não continham texto foram removidas] ------------------------------------ -- <<<<< FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM >>>>> <*> Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages <*> Para falar com o moderador, envie um e-mail para: delphi-br-ow...@yahoogrupos.com.br Links do Yahoo! Grupos <*> Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ <*> Para sair deste grupo, envie um e-mail para: delphi-br-unsubscr...@yahoogrupos.com.br <*> O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html