Ai ai ai

 

Eu sabia que os dados vinham do banco, isso era fato! Mas porquê gravar com 
float uma opção monetária de pagamento? Se você fosse uma conversão de casa de 
câmbio tudo bem, mas para pagamento não tem lógica. Você não vai pagar 5.567, 
ou você paga 5.56 ou 5.57 e acabou! Esse é um grande problema... as pessoas 
vivem usando o SQL com tudo no máximo e tudo errado, Float pra lá e pra cá e 
sai ferrando tudo. 

 

Tá alguém vai me perguntar, mas e trabalho com 3 casas no unitário dos 
produtos? 

 

Ai não tem problema, a única coisa que você tem que prestar atenção é que o 
total ou seja QTDE x UNITÁRIO (que podem ser n casas) será gravado apenas com 2 
casas. Simples.

 

 


 
> To: delphi-br@yahoogrupos.com.br
> From: edume...@gmail.com
> Date: Tue, 17 Nov 2009 08:50:17 -0200
> Subject: Re: [delphi-br] sistema muito doido
> 
> 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 >>>>>
> 
> 
> 
                                          
_________________________________________________________________
Novo site do Windows Live: Novidades, dicas dos produtos e muito mais. Conheça!
http://www.windowslive.com.br/?ocid=WindowsLive09_MSN_Hotmail_Tagline_out09

[As partes desta mensagem que não continham texto foram removidas]

Responder a