Arredondamento - Alguem já viu isso??
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...
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
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...
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
Facc
Curtidas 0
Respostas
Paullsoftware
16/03/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
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
GOSTEI 0
Marco Salles
16/03/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
GOSTEI 0
Facc
16/03/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
Valeu pela ajuda amigo...
Consegui resolver por outro modo
no proprio campo da Query, eu coloquei
,,0.00
GOSTEI 0
Paullsoftware
16/03/2006
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
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 [b:1e794ef0d2]Currency[/b:1e794ef0d2] do campo para [b:1e794ef0d2]TRUE[/b:1e794ef0d2]..GOSTEI 0
Alexandre_torres
16/03/2006
tenta mutiplicar o Round por 10 e dividir por 10
T+
T+
GOSTEI 0
Aroldo Zanela
16/03/2006
Colega,
Existem diversas formas, algumas já apresentadas. Posso citar também:
Existem diversas formas, algumas já apresentadas. Posso citar também:
if (DBGrid2.SelectedIndex = 4) and (Key = #9) then begin DBGrid2.Fields[3].AsCurrency := Trunc(DBGrid2.Fields[3].AsCurrency*100)/100; end;
GOSTEI 0