Array
(
)

Arredondamento - Alguem já viu isso??

Facc
   - 16 mar 2006

Boa Tarde...

Estou com um dilema. Possuo uma DBGrid, e uma determinada coluna eu tenho que digitar a quantidade do produto, essa quantidade é uma decimal.
Se eu colocar 5,29, a bendita DbGrid preenche 5,2900000065441 gostaria de saber como posso resolver esse problema. Abaixo segue o código da minha tentativa não sucedida...


#Código


if (DBGrid2.SelectedIndex = 4) and (Key = #9) then
begin
sCampo := DBGrid2.Fields[3].AsFloat;
sCampo := Round(sCampo*100)/100;
DBGrid2.Fields[3].AsFloat := sCampo;
end


Ele até executa o código, porém na Grid ainda mantém o valor com todas as casas decimais...


agradeço a atenção


Paullsoftware
   - 16 mar 2006

tente assim:
if (DBGrid2.SelectedIndex = 4) and (Key = #9) then
begin
sCampo := DBGrid2.Fields[3].AsFloat;
sCampo := Round(sCampo*100)/100;
DBGrid2.Fields[3].AsString := FormatFloat(´,,0.00´,sCampo);
end


Marco Salles
   - 16 mar 2006

Bem , pode ate dar certo o que o Paulo Lhe sugeriu , mas acho que as Informações sobre o tipo de Banco , O tipo do Dado , os Componentes de Acesso etc , devem serem informadas


Facc
   - 16 mar 2006


Citação:
tente assim:
if (DBGrid2.SelectedIndex = 4) and (Key = #9) then
begin
sCampo := DBGrid2.Fields[3].AsFloat;
sCampo := Round(sCampo*100)/100;
DBGrid2.Fields[3].AsString := FormatFloat(´,,0.00´,sCampo);
end



Valeu pela ajuda amigo...


Consegui resolver por outro modo

no proprio campo da Query, eu coloquei #Código

,,0.00
nos eventos DisplayFormat e EditFormat.


Paullsoftware
   - 16 mar 2006

#Código

f (DBGrid2.SelectedIndex = 4) and (Key = #9) then 
begin
sCampo := DBGrid2.Fields[3].AsFloat;
sCampo := Round(sCampo*100)/100;
DBGrid2.Fields[3].AsString := FormatFloat(´,,0.00´,sCampo);
end


Citação:
Bem , pode ate dar certo o que o Paulo Lhe sugeriu , mas acho que as Informações sobre o tipo de Banco , O tipo do Dado , os Componentes de Acesso etc , devem serem informadas
correto Marcos, pois, se a informação vem do campo de uma tabela, se esse campo for do tipo, Numeric, Float, Currency ou semelhante... basta mudar a propriedade Currency do campo para TRUE..


Alexandre_torres
   - 17 mar 2006

tenta mutiplicar o Round por 10 e dividir por 10

T+


Aroldo Zanela
   - 17 mar 2006

Colega,

Existem diversas formas, algumas já apresentadas. Posso citar também:

#Código


if (DBGrid2.SelectedIndex = 4) and (Key = #9) then
begin
DBGrid2.Fields[3].AsCurrency := Trunc(DBGrid2.Fields[3].AsCurrency*100)/100;
end;