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 

Formatar casas decimais - [Resolvido]

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


Registrado: Sexta-Feira, 17 de Fevereiro de 2012
Mensagens: 873

MensagemEnviada: Qui Mai 29, 2014 11:42 pm    Assunto: Formatar casas decimais - [Resolvido] Responder com Citação

Eu de novo outra vez!
Como faço pra formatar um valor corretamente: "Independente o numero de casas decimais". Fiz de varias formas, no final usei este abaixno mais nao me deixou contente. Me dê uma ajudinha.

Segui um exemplo.

Código:
cdsvenda.fieldbyname('acrescimo').AsString := FormatFloat('###0.00',(StrToFloat(edtacrdesc.Text)));
edtVLTotal.Text       := FormatFloat('###0.00',(StrToFloat(edttotal.Text)));


Geralmente os valores estao ficando assim 3454,00
_________________
Atrás de todo problema a uma oportunidade brilhantemente disfarçada!
Compartilhar Imagens .: http://s124.photobucket.com/


Editado pela última vez por rique_neves em Ter Jun 03, 2014 12:01 am, num total de 1 vez
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
joemil
Moderador
Moderador


Registrado: Quinta-Feira, 25 de Março de 2004
Mensagens: 9100
Localização: Sinop-MT

MensagemEnviada: Sex Mai 30, 2014 8:26 am    Assunto: Responder com Citação

mas vc quer formatar como? dê mais exemplos

se vc usar assim: ###0.00#### ira aparecer mais decimais, caso tenham
_________________
<b>SEMPRE COLOQUE [RESOLVIDO] NO SEU POST</b>
Enviar imagens: http://tinypic.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
ediat12
Novato
Novato


Registrado: Sábado, 15 de Setembro de 2012
Mensagens: 66

MensagemEnviada: Sex Mai 30, 2014 8:29 am    Assunto: Responder com Citação

Seja mais claro como vc quer esse valor formatado.

FormatFloat('##,##0.00', valor);

No exemplo acima ficará algo assim 1.560,00 ou 12.543,00 ou 120.435,00

Testa ai e vê se te contenta isso, caso não, mostre como gostaria da formatação com exemplos, que dai fica mais fácil ajudar.

Só uma observação, isso ai é fácil em um DBEdit caso seja MaskEdit é complicado, pois ele vai limitar seu valor no tamanho da máscara.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rique_neves
Mestre
Mestre


Registrado: Sexta-Feira, 17 de Fevereiro de 2012
Mensagens: 873

MensagemEnviada: Sex Mai 30, 2014 10:10 pm    Assunto: Responder com Citação

joemil escreveu:
mas vc quer formatar como? dê mais exemplos

se vc usar assim: ###0.00#### ira aparecer mais decimais, caso tenham


Esta maneira que voce me passou está fazendo praticamente igual ao que eu faço hoje. Não curti.

No seu caso si o valor for R$ 3,400.00, está formatando assim R$ 3400,00 sem a virgula, quero inserir os pontos e as vírgulas quando for acima de 3 casas decimais.
_________________
Atrás de todo problema a uma oportunidade brilhantemente disfarçada!
Compartilhar Imagens .: http://s124.photobucket.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
rique_neves
Mestre
Mestre


Registrado: Sexta-Feira, 17 de Fevereiro de 2012
Mensagens: 873

MensagemEnviada: Sex Mai 30, 2014 10:18 pm    Assunto: Responder com Citação

ediat12 escreveu:
Seja mais claro como vc quer esse valor formatado.

FormatFloat('##,##0.00', valor);

No exemplo acima ficará algo assim 1.560,00 ou 12.543,00 ou 120.435,00

Testa ai e vê se te contenta isso, caso não, mostre como gostaria da formatação com exemplos, que dai fica mais fácil ajudar.

Só uma observação, isso ai é fácil em um DBEdit caso seja MaskEdit é complicado, pois ele vai limitar seu valor no tamanho da máscara.


Já no teu caso, nao consigo somar os valores quando passa de 3 casas , tipo.:

Si for R$ 1,600.00 ao acrescentar qualquer valor tipo R$ 69,00.
Retorna erro : EconvertError with message "1.600,00" is not a valid floating point value
_________________
Atrás de todo problema a uma oportunidade brilhantemente disfarçada!
Compartilhar Imagens .: http://s124.photobucket.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
ediat12
Novato
Novato


Registrado: Sábado, 15 de Setembro de 2012
Mensagens: 66

MensagemEnviada: Dom Jun 01, 2014 11:42 am    Assunto: Responder com Citação

Sim realmente ele não vai deixar somar o valor devido o ponto na casa milenar, nesse caso, a única solução que eu faria é, limpar a pontuação dos valores nos quais quero somar e depois aplicar a máscara novamente, ou se deixar formatado da forma 1230,80 << nesse caso pode somar normalmente.
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular
rique_neves
Mestre
Mestre


Registrado: Sexta-Feira, 17 de Fevereiro de 2012
Mensagens: 873

MensagemEnviada: Seg Jun 02, 2014 11:59 pm    Assunto: Resolvido Responder com Citação

ediat12 escreveu:
Sim realmente ele não vai deixar somar o valor devido o ponto na casa milenar, nesse caso, a única solução que eu faria é, limpar a pontuação dos valores nos quais quero somar e depois aplicar a máscara novamente, ou se deixar formatado da forma 1230,80 << nesse caso pode somar normalmente.


Perdão pela demora, ocupado ...

Mas era algo bem simples não estava conseguindo resolver.
Resolvi usar StringReplace.
Consegui resolver.. Obrigado a todos pelo empenho em ajudar.

Código:
val1 := edttotal.Text;
            val2 := edtVLTotal.Text;
            val1novo           := trim(StringReplace(val1,',','',[rfReplaceall]));
            val1novo           := trim(StringReplace(val1,'.','',[rfReplaceall]));
            val2novo           := trim(StringReplace(val2,',','',[rfReplaceall]));
            val2novo           := trim(StringReplace(val2,'.','',[rfReplaceall]));
            val3total          := FloatToStr(StrToFloat(val1novo) + StrToFloat(val2novo));
            edtVLTotal.Text       := FormatFloat('##,##0.00',(StrToFloat(val3total)));

_________________
Atrás de todo problema a uma oportunidade brilhantemente disfarçada!
Compartilhar Imagens .: http://s124.photobucket.com/
Voltar ao Topo
Ver o perfil de Usuários Enviar Mensagem Particular Enviar E-mail
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