Ajuda com Valores floats...
20/02/2006
0
tenho um banco de dados mysql... e a tabela que eu tenho é o seguinte
Codigo Descricao data valor
220 dolar 2005-01-01 1.90
221 euro 2005-01-01 1.50
quando eu mando lista todos os dados da tabela na grid, o valor sai como 1.4999882.... so que no banco de dados ele esta 1.50.... ai fiz o seguinte comando:
TNumericField(Datamodule1.ZQuery1.FieldByName(´valor´)).DisplayFormat := ´,0.00;-,0.00´;
ele na grid mostra correto... so que no evento TForm1.DBGrid1DblClick(Sender: TObject);
Form1.EdtValor.Text:= Datamodule1.ZQuery1.fieldbyname(´valor´).Asstring;
ele traz os edits tudo como 1.4999882... ou seja ele nao traz o que ta na grid....
como eu faço pra ele trazer o que esta na grid exatamente ?
grato
Fernando_cunha
Posts
20/02/2006
Paullsoftware
Clique duas vezes no componente Table/Query selecione o campo Float e no Object Inspector mude a propriedade Currency para True...
espero ter ajudado! :wink:
21/02/2006
Paulo
21/02/2006
Fernando_cunha
PaullSoftware, eu não posso fazer assim pois possuo uma unica query para todas as minhas tabelas... e ao carregar o form eu faço o seguinte
DbGrid1.DataSource:=DataModule1.DtsProcurar; DataModule1.ZQuery1.SQL.Clear; DataModule1.ZQuery1.SQL.Add(´SELECT * FROM taxa´); Datamodule1.ZQuery1.open; TNumericField(Datamodule1.ZQuery1.FieldByName(´valor´)).DisplayFormat := ´,0.00;-,0.00´; Dbgrid1.Columns[0].FieldName:=´cod_taxa´; Dbgrid1.Columns[0].Width:=40; Dbgrid1.Columns[0].Title.caption:=´Código´; Dbgrid1.Columns[1].FieldName:=´descricao´; Dbgrid1.Columns[1].Width:=130; Dbgrid1.Columns[1].Title.caption:=´Descrição´; Dbgrid1.Columns[2].FieldName:=´valor´; Dbgrid1.Columns[2].Width:=102; Dbgrid1.Columns[2].Title.caption:=´Valor´;
e Paulo, eu realmente tive que testar varios formatos de mascara... até que deixei na ´decimal´ ele traz lá o valor 1,56 normal ... o problema agora esta sendo quando tem zero no final... tipo o valor é 1,20 ele so me traz 1,2
obrigado pela ajuda anteriormente... agora eu so preciso trazer o bendito 0 no final....
abraços
21/02/2006
Paullsoftware
21/02/2006
Fernando_cunha
coloquei tambem logo quando trago os valores da grid pro edit e tbm nao vai... ele ja traz 1,2 ... sem o zero... ai ele nao consegue converter nada
22/02/2006
Fernando_cunha
algum poderia me ajudar ???
nao estou conseguindo mesmo :( vou postar os codigo inteiro pra ver se ajuda alguma coisa
o detalhe que no banco esta 1.20... e na grid traz 1.20.... so que quando puxo pro edit ele so traz 1.2 ele corta o 0....
algum plz ajuda... pois estou com problema neste form... mas possuo mais 5 forms com valores q provavelmente ta com mesmo problema...
grato
procedure TFrmProcurarTaxa.FormActivate(Sender: TObject); begin DbGrid1.DataSource:=DataModule1.DtsProcurar; DataModule1.ZQuery1.SQL.Clear; DataModule1.ZQuery1.SQL.Add(´SELECT * FROM taxa´); Datamodule1.ZQuery1.open; TNumericField(Datamodule1.ZQuery1.FieldByName(´valor´)).DisplayFormat := ´,0.00;-,0.00´; Dbgrid1.Columns[0].FieldName:=´cod_taxa´; Dbgrid1.Columns[0].Width:=40; Dbgrid1.Columns[0].Title.caption:=´Código´; Dbgrid1.Columns[1].FieldName:=´descricao´; Dbgrid1.Columns[1].Width:=130; Dbgrid1.Columns[1].Title.caption:=´Descrição´; Dbgrid1.Columns[2].FieldName:=´valor´; Dbgrid1.Columns[2].Width:=102; Dbgrid1.Columns[2].Title.caption:=´Valor´; end;
procedure TFrmProcurarTaxa.DBGrid1DblClick(Sender: TObject); begin Frmtaxa.EdtCodigo.Text:= DataModule1.ZQuery1.fieldbyname(´cod_taxa´).AsString; Frmtaxa.EdtDescricao.Text:= DataModule1.ZQuery1.fieldbyname(´descricao´).AsString; Frmtaxa.EdtValor.Text:= Datamodule1.ZQuery1.fieldbyname(´valor´).Asstring; close; end;
22/02/2006
Fernando_cunha
consegui resolver o problema.
ficou da seguinte maneira...
procedure TFrmProcurarTaxa.FormActivate(Sender: TObject); begin DbGrid1.DataSource:=DataModule1.DtsProcurar; DataModule1.ZQuery1.SQL.Clear; DataModule1.ZQuery1.SQL.Add(´SELECT * FROM taxa´); Datamodule1.ZQuery1.open; TNumericField(Datamodule1.ZQuery1.FieldByName(´valor´)).DisplayFormat := ´,0.00;-,0.00´; Dbgrid1.Columns[0].FieldName:=´cod_taxa´; Dbgrid1.Columns[0].Width:=40; Dbgrid1.Columns[0].Title.caption:=´Código´; Dbgrid1.Columns[1].FieldName:=´descricao´; Dbgrid1.Columns[1].Width:=130; Dbgrid1.Columns[1].Title.caption:=´Descrição´; Dbgrid1.Columns[2].FieldName:=´valor´; Dbgrid1.Columns[2].Width:=102; Dbgrid1.Columns[2].Title.caption:=´Valor´; end; procedure TFrmProcurarTaxa.DBGrid1DblClick(Sender: TObject); begin Frmtaxa.EdtCodigo.Text:= DataModule1.ZQuery1.fieldbyname(´cod_taxa´).AsString; Frmtaxa.EdtDescricao.Text:= DataModule1.ZQuery1.fieldbyname(´descricao´).AsString; Frmtaxa.EdtValor.Text:= FormatFloat(´0.00´, StrToFloat(Datamodule1.ZQuery1.fieldbyname(´valor´).AsString)); close; end;
Obrigado pela ajuda de todos.
Clique aqui para fazer login e interagir na Comunidade :)