Exibir mensagem anterior :: Exibir próxima mensagem |
Autor |
Mensagem |
dcbfreitas21 Membro Junior
![Membro Junior Membro Junior](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star3.gif)
Registrado: Sábado, 30 de Janeiro de 2010 Mensagens: 323
|
Enviada: Ter Fev 21, 2012 8:50 am Assunto: Erro is not a valid floating point value |
|
|
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) uma vez ele aceita, porem se tento de novo ele mostra o erro independente de ser numeiro inteiro ou quebrado (23,4). O erro acontece ao sair da edit e os codigos utilizados sao estes:
Código: | 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); |
|
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
marcosalles Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Quarta-Feira, 26 de Março de 2008 Mensagens: 1695 Localização: Muriaé Mg
|
Enviada: Ter Fev 21, 2012 9:24 am Assunto: |
|
|
estoque1 := strtofloat(ADOQuery1.FieldByName('E1').DisplayText) + strtofloat(edit2.Text);
Olha so , o fieldbyname disponibiliza vários formatos para o campo
Asstring , Asinteger , Asfloat , AsExtended ,Asdatetime etc.....
se o campo é inteiro utilise o AsInteger
não precisa ficar convertendo
var
INTEIRO:Integer;
Inteiro:=strtoint(ADOQuery1.FieldByName('E1').ASSTRING)
basta utilizar ***Sem fazer a Conversão
Inteiro:=ADOQuery1.FieldByName('E1').ASInteger
Troque o ADOQuery1.FieldByName('E1').DisplayText) pelo Tipo
de dado que voce espera na Operação e que esteja disponivel no
campo ... Faça estas modificaçãoes , se não resolver pelo menos é o
modo correto e evita Transformaçoes desnecessárias alem de dificultar a
leitura do código _________________ http://marcosalles.wordpress.com
Desenvolvo FreeLancer e presto Consultoria
Orientação Online DataSnap DbX ClientDataSet
POO , Padrões de Projeto e dúvidas de Delphi em
Geral |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
dcbfreitas21 Membro Junior
![Membro Junior Membro Junior](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star3.gif)
Registrado: Sábado, 30 de Janeiro de 2010 Mensagens: 323
|
Enviada: Ter Fev 21, 2012 2:45 pm Assunto: |
|
|
marcosalles escreveu: | estoque1 := strtofloat(ADOQuery1.FieldByName('E1').DisplayText) + strtofloat(edit2.Text);
Olha so , o fieldbyname disponibiliza vários formatos para o campo
Asstring , Asinteger , Asfloat , AsExtended ,Asdatetime etc.....
se o campo é inteiro utilise o AsInteger
não precisa ficar convertendo
var
INTEIRO:Integer;
Inteiro:=strtoint(ADOQuery1.FieldByName('E1').ASSTRING)
basta utilizar ***Sem fazer a Conversão
Inteiro:=ADOQuery1.FieldByName('E1').ASInteger
Troque o ADOQuery1.FieldByName('E1').DisplayText) pelo Tipo
de dado que voce espera na Operação e que esteja disponivel no
campo ... Faça estas modificaçãoes , se não resolver pelo menos é o
modo correto e evita Transformaçoes desnecessárias alem de dificultar a
leitura do código |
Na verdade meu campo E1 é moeda, por ser numero quebrados, tentei alterar o codigo asstring por asfloat e ele nao executa mostrando o erro 'StrToFloat' that can be called with these arguments'.
Tb tentei .value mas aparece o mesmo erro |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
marcosalles Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Quarta-Feira, 26 de Março de 2008 Mensagens: 1695 Localização: Muriaé Mg
|
Enviada: Ter Fev 21, 2012 3:21 pm Assunto: |
|
|
Citação: | Na verdade meu campo E1 é moeda, por ser numero quebrados, tentei alterar o codigo asstring por asfloat e ele nao executa mostrando o erro 'StrToFloat' that can be called with these arguments'.
Tb tentei .value mas aparece o mesmo erro |
O argumento não é um Real ???? voce tem que fazer o typcast correto
coloque o codigo onde o compilador esta reclamando
StrToFloat(Aqui tem que ser um Real) e quem irá receber tem que ser String _________________ http://marcosalles.wordpress.com
Desenvolvo FreeLancer e presto Consultoria
Orientação Online DataSnap DbX ClientDataSet
POO , Padrões de Projeto e dúvidas de Delphi em
Geral |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
dcbfreitas21 Membro Junior
![Membro Junior Membro Junior](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star3.gif)
Registrado: Sábado, 30 de Janeiro de 2010 Mensagens: 323
|
Enviada: Sáb Fev 25, 2012 7:19 am Assunto: |
|
|
marcosalles escreveu: | Citação: | Na verdade meu campo E1 é moeda, por ser numero quebrados, tentei alterar o codigo asstring por asfloat e ele nao executa mostrando o erro 'StrToFloat' that can be called with these arguments'.
Tb tentei .value mas aparece o mesmo erro |
O argumento não é um Real ???? voce tem que fazer o typcast correto
coloque o codigo onde o compilador esta reclamando
StrToFloat(Aqui tem que ser um Real) e quem irá receber tem que ser String |
Mas o float nao serve para o real? Se nao, qual seria o correto? |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
marcosalles Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Quarta-Feira, 26 de Março de 2008 Mensagens: 1695 Localização: Muriaé Mg
|
Enviada: Sáb Fev 25, 2012 7:48 am Assunto: |
|
|
Desculpe eu escrevi errado
Citação: | StrToFloat(Aqui tem que ser um Real) e quem irá receber tem que ser String |
corrigindo
Citação: | StrToFloat(Aqui tem que ser um String) e quem irá receber tem que ser Real |
Mas eu não quis dizer somente isto...
O que estou querndo dizer é que não precisa utilizar Conversão ,
pois se o campo ja é um inteiro ou real basta utlizar o asinteger ou
asfloat na propriedade do Tfield
Voce esta fazendo assim
Citação: | estoque1 := strtofloat(ADOQuery1.FieldByName('E1').DisplayText) + strtofloat(edit2.Text);
|
ps) usar o DisplayText não é muito usual o usual é utilizar o asstring
O que quero dizer é que se o campo E1 ja for um Inteiro ou Um Real
basta fazer assim
Código: | estoque1 := ADOQuery1.FieldByName('E1').asinteger + strtofloat(edit2.Text);
ou
estoque1 := ADOQuery1.FieldByName('E1').asFloat + strtofloat(edit2.Text); |
Isto é válido é claro que se o estoque1 for definido como Real _________________ http://marcosalles.wordpress.com
Desenvolvo FreeLancer e presto Consultoria
Orientação Online DataSnap DbX ClientDataSet
POO , Padrões de Projeto e dúvidas de Delphi em
Geral |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
dcbfreitas21 Membro Junior
![Membro Junior Membro Junior](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star3.gif)
Registrado: Sábado, 30 de Janeiro de 2010 Mensagens: 323
|
Enviada: Seg Fev 27, 2012 8:15 am Assunto: |
|
|
marcosalles escreveu: | Desculpe eu escrevi errado
Citação: | StrToFloat(Aqui tem que ser um Real) e quem irá receber tem que ser String |
corrigindo
Citação: | StrToFloat(Aqui tem que ser um String) e quem irá receber tem que ser Real |
Mas eu não quis dizer somente isto...
O que estou querndo dizer é que não precisa utilizar Conversão ,
pois se o campo ja é um inteiro ou real basta utlizar o asinteger ou
asfloat na propriedade do Tfield
Voce esta fazendo assim
Citação: | estoque1 := strtofloat(ADOQuery1.FieldByName('E1').DisplayText) + strtofloat(edit2.Text);
|
ps) usar o DisplayText não é muito usual o usual é utilizar o asstring
O que quero dizer é que se o campo E1 ja for um Inteiro ou Um Real
basta fazer assim
Código: | estoque1 := ADOQuery1.FieldByName('E1').asinteger + strtofloat(edit2.Text);
ou
estoque1 := ADOQuery1.FieldByName('E1').asFloat + strtofloat(edit2.Text); |
Isto é válido é claro que se o estoque1 for definido como Real |
A variavel estoque1 esta definida como real, deixei os codigos desta forma:
Código: | if edit2.text = emptystr then
begin
edit2.Text := '0';
end;
if radiobutton1.Checked = true then
begin
estoque1 := ADOQuery1.FieldByName('E1').asFloat + strtofloat(edit2.Text);
DBEdit1.Text := FloatToStr(estoque1);
Edit10.Text := edit2.Text;
DBEdit9.Text := DBEdit1.Text;
end;
if radiobutton2.Checked = true then
begin
estoque1 := ADOQuery1.FieldByName('E1').asFloat + 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); |
Porem ele continua da mesma forma na primeira vez que coloca valores ele aceita na segunda vez ele da erro. |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
marcosalles Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Quarta-Feira, 26 de Março de 2008 Mensagens: 1695 Localização: Muriaé Mg
|
Enviada: Seg Fev 27, 2012 11:23 am Assunto: |
|
|
Citação: | Porem ele continua da mesma forma na primeira vez que coloca valores ele aceita na segunda vez ele da erro. |
é porque na segunda vez , esses edits que voce esta utilizando , devem
estar formatados com caracterers qua não são passiveis de conversão
Pode ter certeza que o Text deste Edits estão "polidos" .
Verifique isto _________________ http://marcosalles.wordpress.com
Desenvolvo FreeLancer e presto Consultoria
Orientação Online DataSnap DbX ClientDataSet
POO , Padrões de Projeto e dúvidas de Delphi em
Geral |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
dcbfreitas21 Membro Junior
![Membro Junior Membro Junior](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/star3.gif)
Registrado: Sábado, 30 de Janeiro de 2010 Mensagens: 323
|
Enviada: Qua Fev 29, 2012 9:37 am Assunto: |
|
|
marcosalles escreveu: | Citação: | Porem ele continua da mesma forma na primeira vez que coloca valores ele aceita na segunda vez ele da erro. |
é porque na segunda vez , esses edits que voce esta utilizando , devem
estar formatados com caracterers qua não são passiveis de conversão
Pode ter certeza que o Text deste Edits estão "polidos" .
Verifique isto |
Marcosalles como faço para verificar isto?
Desculpe se a pergunta for idiota, mas ainda sou iniciante em delphi |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
marcosalles Moderador
![Moderador Moderador](../modules/PNphpBB2/templates/PNTheme/images/narodniki-classic/moderador.gif)
Registrado: Quarta-Feira, 26 de Março de 2008 Mensagens: 1695 Localização: Muriaé Mg
|
Enviada: Qua Fev 29, 2012 11:29 am Assunto: |
|
|
Visualmente voce pode perceber se esses edits contem somente numeros
ou estão poluidos com alguns literais o que da erro de conversão _________________ http://marcosalles.wordpress.com
Desenvolvo FreeLancer e presto Consultoria
Orientação Online DataSnap DbX ClientDataSet
POO , Padrões de Projeto e dúvidas de Delphi em
Geral |
|
Voltar ao Topo |
|
![](templates/subSilver/images/spacer.gif) |
|