ActiveDelphi - Índice do Fórum ActiveDelphi
.: O site do programador Delphi! :.
 
 FAQFAQ   PesquisarPesquisar   MembrosMembros   GruposGrupos   RegistrarRegistrar 
 PerfilPerfil   Entrar e ver Mensagens ParticularesEntrar e ver Mensagens Particulares   EntrarEntrar 

Is a not a valid floating point value - Cálculo

 
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi
Exibir mensagem anterior :: Exibir próxima mensagem  
Autor Mensagem
JonasB
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 15 de Abril de 2013
Mensagens: 175

MensagemEnviada: Sex Fev 20, 2015 8:13 am    Assunto: Is a not a valid floating point value - Cálculo Responder com Citação

Fala pessoal, tudo certo ?

Estou com um problema em um cálculo básico em dois valores.

Acontece que se o valor for maior que 999,00 o sistema me retorna:

Código:
'1.200,00' is not a valid floating point value


O código que estou usando é:

Código:
edtVlrTotalProduto.Text := FloatToStr(StrToFloat(edtQtdProduto.Text) * StrToFloat(edtUnitProduto.Text));


Alguém pode ajudar ?

Valeu!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 2940
Localização: Belo Horizonte - MG

MensagemEnviada: Sex Fev 20, 2015 9:07 am    Assunto: Responder com Citação

StrToFloat() não suporta separador de milhar.

Utilize o StringReplace para retirar os pontos dos valores:

Código:
edtVlrTotalProduto.Text := FormatFloat('###,##0.00',
  StrToFloat(StringReplace(edtQtdProduto.Text, '.', '',[rfReplaceAll])) *
  StrToFloat(StringReplace(edtUnitProduto.Text, '.', '', [rfReplaceAll])));

_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
JonasB
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 15 de Abril de 2013
Mensagens: 175

MensagemEnviada: Sex Fev 20, 2015 9:13 am    Assunto: Responder com Citação

De que forma teria que fazer pra aparecer o separador de milhar ? Digamos para que fique 'esteticamente' bacana.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
natanbh1
Colaborador
Colaborador


Registrado: Terça-Feira, 15 de Março de 2011
Mensagens: 2940
Localização: Belo Horizonte - MG

MensagemEnviada: Sex Fev 20, 2015 9:18 am    Assunto: Responder com Citação

Você precisa retirar o separador de milhar apenas no momento de calcular, da maneira que fiz no código que passei.

Na hora de "mostrar" o valor no "Edit" ou "DBEdit" pode formatar o valor com formatFloat e deixar com o separador de milhar.
_________________
''A persistência é o caminho para o êxito.''
Charlie Chaplin
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
JonasB
Aprendiz
Aprendiz


Registrado: Segunda-Feira, 15 de Abril de 2013
Mensagens: 175

MensagemEnviada: Sex Fev 20, 2015 9:26 am    Assunto: Responder com Citação

Isso mesmo.

Muito obrigado pela ajuda amigo!
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
wil_lianogueira
Aprendiz
Aprendiz


Registrado: Quinta-Feira, 31 de Julho de 2008
Mensagens: 146

MensagemEnviada: Ter Fev 24, 2015 9:53 am    Assunto: Responder com Citação

Uma maneira um pouco melhor de converter é:
Código:

StrToFloat(StringReplace(edtQtdProduto.Text, ThousandSeparator , '',[rfReplaceAll]));


Dessa forma não limita o separador de milhar ao ponto "."
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
Mostrar os tópicos anteriores:   
Novo Tópico   Responder Mensagem    ActiveDelphi - Índice do Fórum -> Delphi Todos os horários são GMT - 3 Horas
Página 1 de 1

 
Ir para:  
Enviar Mensagens Novas: Proibido.
Responder Tópicos Proibido
Editar Mensagens: Proibido.
Excluir Mensagens: Proibido.
Votar em Enquetes: Proibido.


Powered by phpBB © 2001, 2005 phpBB Group
Traduzido por: Suporte phpBB