Fórum Conversão #374304
31/08/2009
0
Obrigado pela ajuda.
Vand3rson
Curtir tópico
+ 0Posts
31/08/2009
Osocram
showmessage( ´R$ ´+FormatFloat(´,#0.00´,SeuNumero) );
Gostei + 0
31/08/2009
Vand3rson
Gostei + 0
31/08/2009
Osocram
como esta o seu codigo?
e como esta vindo esse seu numero?
Gostei + 0
31/08/2009
Vand3rson
E estou usando ele assim:
ListItem.SubItems.Add(FormatFloat(´,#0.00´,DMConexao.cdsValidar.FieldByName(´VALOR´).Value));
Gostei + 0
31/08/2009
.lg.
Se o seu Field é um Float... Há uma propriedade chamada [color=blue:93cb63464c]Currency[/color:93cb63464c]. Ative-a e pronto. Ele já formata pro modo de dindin. Faz um teste. :wink:
Gostei + 0
31/08/2009
Vand3rson
O valor que retorna da consulta no banco é [b:392e8dd45e]10236478[/b:392e8dd45e]
E estou usando o seguinte código:
ListItem.SubItems.Add(FormatFloat(´,#0.00´,DMConexao.cdsValidar.FieldByName(´VALOR´).Value));
Mas ele me retorna sempre [b:392e8dd45e]10.236.478,00[/b:392e8dd45e] e eu precisso realmente de [b:392e8dd45e]102.364,78[/b:392e8dd45e]
Tentei a dica do [i:392e8dd45e].Lg.[/i:392e8dd45e] e tb não deu muito certo.
Obrigado.
Gostei + 0
31/08/2009
Osocram
Mas agora temos algumas coisas a considerar...
1) qual o tipo de dados que vc esta usando no banco p guardar esta informção
2) pq vc nao grava com os decimais?
3) Sempre vai ter 2 decimais? por exemplo 123478 = 1234,78 e 123400 = 1234,00.?
Pois se for assim vc pode fazer uma divisão por 100 antes de fazer o display
ListItem.SubItems.Add(FormatFloat(´,#0.00´, ( DMConexao.cdsValidar.FieldByName(´VALOR´).Value / 100) ));
Mas ja aviso isso não é uma solução elegante, provavelmente o banco ae não foi estruturado corretamente.
Gostei + 0
31/08/2009
Rweberich
Faz o seguinte: vai nas propriedades do ´Field´ do seu TQuery que esta lincado a tabela que tem o campo que vc prescisar recuperar o valor em formato moeda, e altere a propriedade ´DisplayFormat´ para ´0.00´.
Ou seja, o valor no banco de dados continuará ´102364,78´, mas sera apresentado nos TDBGrid e em TDBEdit na formato ´R$ 102.364,78´.
(Obs: pra ir nos ´Field´ do TQuery, é so dar um clique duplo no TQuery).
Abraco.
Gostei + 0
31/08/2009
Rweberich
Faz o seguinte: vai nas propriedades do ´Field´ do seu TQuery que esta lincado a tabela que tem o campo que vc prescisar recuperar o valor em formato moeda, e altere a propriedade ´DisplayFormat´ para ´0.00´.
Ou seja, o valor no banco de dados continuará ´102364,78´, mas sera apresentado nos TDBGrid e em TDBEdit na formato ´R$ 102.364,78´.
(Obs: pra ir nos ´Field´ do TQuery, é so dar um clique duplo no TQuery).
Abraco.
Gostei + 0
31/08/2009
Pestana_
ListItem.SubItems.Add(FormatFloat(´,#0.00´,DMConexao.cdsValidar.FieldByName(´VALOR´).Value));
tente novamente a dica do [b:51ea1888ae].lg.[/b:51ea1888ae] e depois você faça assim:
ListItem.SubItems.Add(DMConexao.cdsValidar.FieldByName(´VALOR´).DisplayText));
Gostei + 0
31/08/2009
Vitor Rubio
Você pode mudar ela de . pra , ou vice-versa, não esquecendo de desfazer depois. Também tem o record/estrutura format settings.
Mas a melhor coisa é configurar o DisplayFormat do campo, no CDS. E você pode configurar ele como currency também, aí ele já vai formatar com R$ e virgulas e pontos nos lugares certos, dependendo das configurações regionais no painel de controle.
Nunca grave virgulas, pontos ou separadores no banco de dados. No banco de dados o campo deve ser double precision, ou numeric(x,y) onde x é o tamanho de digitos da parte inteira e y é o numero de casas decimais.
Eu pessoalmente prefiro double, porque você pode usar qualquer tipo de número racional e formatar depois. É um campo com faixa de valores bem abrangente.
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)