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


Responder a