Fórum Valor não é valido?? #259958

25/11/2004

0

Bom dia a todos,

Mas uma vz peço a ajuda de vcs para resolver o seguinte problema: Estou trabalhando numa aplicação que foi desenvolvida em delphi 5 usando BDE/Paradox. Essa aplicação executa vários calculos e em um desses calculos, se forem informados determinados valores, aparece a seguinte mensagem de erro: ´1097,52´ is not a valid floating point value. Com alguns outros valores isso não acontece. Não sei por qual o motivo, alguem saberia me responder?

Desde já agradeço a todos.
[]´s,
Fabiano.


Fabiano_aprendiz

Fabiano_aprendiz

Responder

Posts

25/11/2004

Jc_analista

Verifique se na hora do calculo um dos valores esta nullo ou com algum caracter alfanumerico que não seja um destes (, . R$)


Responder

Gostei + 0

25/11/2004

Fabiano_aprendiz

Sim, o ponto e a virgula existem, mas existem outras dezenas de valores e varios outros calculos e todos possuem ponto e virgula, naum to entendendo o porq de só acontecer o erro com esse calculo.


Responder

Gostei + 0

25/11/2004

Massuda

Não sei responder sua dúvida, mas existem tantos modos de converter string para float que talvez ajudasse se você postasse aqui o código problemático... mas se ele for muito grande, talvez espante o pessoal :wink:


Responder

Gostei + 0

25/11/2004

Aroldo Zanela

Colega,

Normalmente o separador decimal é o ponto e não vírgula, salve espeficicação em contrário por meio da variável DecimalSeparator.
Como já sugerido, coloque um fragmento do código para análise.


Responder

Gostei + 0

25/11/2004

Fabiano_aprendiz

Bem, eh uma aplicação bem complicada para chegar no calculo final, tem q se passar por várias partes do código. Os valores usados para o cálculo estão armazenados em uma tabela da seguinte forma: 32,83 e 1.604,69.

Debugando o programa, a linha em q acusa a mensagem é:

If FrmGrerj.Edit40.Visible = True Then
vSubTotal := vSubTotal + StrToFloat(FrmGrerj.Edit40.Text);


Responder

Gostei + 0

25/11/2004

Aroldo Zanela

Colega,

Veja o código abaixo, onde eu utilizei um Edit (Edit40) para servir de testes:

var vSubTotal: Currency;
    VelhoSeparador: Char;
begin
  VelhoSeparador    := DecimalSeparator;
  DecimalSeparator  := ´,´; // Troque pelo separador desejado.
  vSubTotal := vSubTotal + StrToFloat(Edit40.Text);
  DecimalSeparator  := VelhoSeparador;
end;



Responder

Gostei + 0

25/11/2004

Massuda

Um detalhe... conforme a Ajuda do Delphi:
Thousand separators and currency symbols are not allowed in the string.
Portanto, seu exemplo ´1.604,69´ deve gerar também a exceçao ´is not a valid floating point value´. Remova o símbolo de milhar da sua string ou use outra função para converter de string para float.


Responder

Gostei + 0

29/11/2004

Fabiano_aprendiz

Caros,

Ao tentar remover o ponto na tabela, quando vou salvar a alteração, o ponto retorna, quer dizer, não consigo salvar na tabela o valor 1064,69. Nas configurações do windows não tem como eu deixar o simbolo de agrupamento de digitos sem nada. Alguem tem uma ideia?


Responder

Gostei + 0

29/11/2004

Fabiano_aprendiz

Prezados colegas,
Fechou.
Agradeço pela ajuda de todos, resolvi o problema usando a função FormatFloat.

[]´s,
Fabiano.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar