Fórum Erro is not a valid floating point value #413260
25/02/2012
0
Tenho um formulario de controle de estoque e preciso usar numeros quebrados, porem ao tentar dar entrada ou saida no estoque ele mostra o erro is not a valid floating point value, mas o engraçado é que ao tentar dar saida (ou entrada) na primeira vez ele aceita, porem se tento de novo ele mostra o erro independente de ser numero inteiro ou quebrado (ex: 23,4). O erro acontece ao sair da edit e os codigos utilizados sao estes:
if edit2.text = emptystr then
begin
edit2.Text := 0;
end;
if radiobutton1.Checked = true then
begin
estoque1 := strtofloat(ADOQuery1.FieldByName(E1).DisplayText) + strtofloat(edit2.Text);
DBEdit1.Text := FloatToStr(estoque1);
Edit10.Text := edit2.Text;
DBEdit9.Text := DBEdit1.Text;
end;
if radiobutton2.Checked = true then
begin
estoque1 := strtofloat(ADOQuery1.FieldByName(E1).DisplayText) - strtofloat(edit2.Text);
DBEdit1.Text := FloatToStr(estoque1);
Edit10.Text := edit2.Text;
DBEdit9.Text := DBEdit1.Text;
end;
Edit10.Text := floattostr(strtofloat(edit2.Text) + strtofloat(edit3.Text) + strtofloat(edit4.Text) + strtofloat(edit5.Text) + strtofloat(edit6.Text) + strtofloat(edit7.Text) + strtofloat(edit8.Text) + strtofloat(edit9.Text));
DBEdit9.Text := floattostr( strtofloat(DBEdit1.Text) + strtofloat(DBEdit2.Text) + strtofloat(DBEdit3.Text) + strtofloat(DBEdit4.Text) + strtofloat(DBEdit5.Text) + strtofloat(DBEdit6.Text) + strtofloat(DBEdit7.Text) + strtofloat(DBEdit8.Text));
Total := (strtofloat(DBEdit9.Text) * (ADOQuery1.FieldByName(valor).AsCurrency));
DBEdit10.Text := FormatFloat(##,###,##0.00,total);Daniel
Curtir tópico
+ 0
Responder
Posts
25/02/2012
Christian Giuliani
Poderia postar o código mais claro? Esta um pouco confuso pra quem olha pela primeira vez. Mas já de saída poderia tentar usar o currtostr() ou strtocurr() no lugar do floattostr() e strtofloat().
Outra coisa, notei que usa o DBEdit, então pergunto se você esta editando ele pra inserir o novo conteúdo? Não costumo usar estes componentes, uso sempre os Edits normais e passo os dados via programação pra saída ou entrada, demora mais com certeza mas consigo um maior controle.
Bem, se puder explicar melhor o que pensou em cada sequência de comando posso ajudar a resolver o problema.
:)
Outra coisa, notei que usa o DBEdit, então pergunto se você esta editando ele pra inserir o novo conteúdo? Não costumo usar estes componentes, uso sempre os Edits normais e passo os dados via programação pra saída ou entrada, demora mais com certeza mas consigo um maior controle.
Bem, se puder explicar melhor o que pensou em cada sequência de comando posso ajudar a resolver o problema.
:)
Responder
Gostei + 0
27/02/2012
Gustavo Bretas
E ae Daniel, tudo certo?
Quando estava iniciando na vida de desenvolvimento, trabalhei em uma empresa que usava componentes DB, e me traumatizei, fiquei com aversão a componentes DB e quando saí de la passei a usar Edit normal, e com a ajuda da Orientação a Objeto, Herança e muito Type Cast desenvolvi um frameword que considerava produtivo, até que me mostraram como trabalhar com componente DB sem sofrimento... rsrs!
Daniel, eu não sei se vc é novato no assunto ou não, mas já que vc esta usando DB, evite usar os dados direto no componente, use sempre pelo field do dataset, assim vc poderá trabalhar com os tipos dos dados que esta tratrando sem ficar convertendo aqui e ali.
Então a dica é: ao invés de fazer DBEdit1.Text, faça DBEdit1.Field.<AsString, AsInteger, AsFloat, ...>, e se puder trate direto no field do Dataset (Query, Client).
O código esta bem embaralhado (bug do fórum, eu acho) e não encontrei o erro, mas tente a dica pra ver o que acontece!
Abraço!
Quando estava iniciando na vida de desenvolvimento, trabalhei em uma empresa que usava componentes DB, e me traumatizei, fiquei com aversão a componentes DB e quando saí de la passei a usar Edit normal, e com a ajuda da Orientação a Objeto, Herança e muito Type Cast desenvolvi um frameword que considerava produtivo, até que me mostraram como trabalhar com componente DB sem sofrimento... rsrs!
Daniel, eu não sei se vc é novato no assunto ou não, mas já que vc esta usando DB, evite usar os dados direto no componente, use sempre pelo field do dataset, assim vc poderá trabalhar com os tipos dos dados que esta tratrando sem ficar convertendo aqui e ali.
Então a dica é: ao invés de fazer DBEdit1.Text, faça DBEdit1.Field.<AsString, AsInteger, AsFloat, ...>, e se puder trate direto no field do Dataset (Query, Client).
O código esta bem embaralhado (bug do fórum, eu acho) e não encontrei o erro, mas tente a dica pra ver o que acontece!
Abraço!
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)