Conversão
Como converto esse valor 102364,78 para R$ 102.364,78, tentei formatfloat mas não fui muito feliz (talvez não usei certo).
Obrigado pela ajuda.
Obrigado pela ajuda.
Vand3rson
Curtidas 0
Respostas
Osocram
31/08/2009
showmessage( ´R$ ´+FormatFloat(´,#0.00´,SeuNumero) );
Como converto esse valor 102364,78 para R$ 102.364,78, tentei formatfloat mas não fui muito feliz (talvez não usei certo).
Obrigado pela ajuda.
GOSTEI 0
Vand3rson
31/08/2009
valeu osocram, mas dessa forma o valor fica 10.236.478,00 eu precisso que fique 102.364,78, alguma outra alternativa?
GOSTEI 0
Osocram
31/08/2009
valeu osocram, mas dessa forma o valor fica 10.236.478,00 eu precisso que fique 102.364,78, alguma outra alternativa?
como esta o seu codigo?
e como esta vindo esse seu numero?
GOSTEI 0
Vand3rson
31/08/2009
Esse valor é resultado de uma consulta no banco. E esta vindo assim 102364,78
E estou usando ele assim:
E estou usando ele assim:
ListItem.SubItems.Add(FormatFloat(´,#0.00´,DMConexao.cdsValidar.FieldByName(´VALOR´).Value));
GOSTEI 0
.lg.
31/08/2009
Remova toda essa formatação.
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:
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
Vand3rson
31/08/2009
E ai pessoal, desculpa :oops: ... eu coloquei informação errada ai nos posts anteriores ... o real problema é :
O valor que retorna da consulta no banco é [b:392e8dd45e]10236478[/b:392e8dd45e]
E estou usando o seguinte código:
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.
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
Osocram
31/08/2009
Ahhh foi o que eu tinha imaginado.
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
Mas ja aviso isso não é uma solução elegante, provavelmente o banco ae não foi estruturado corretamente.
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
Rweberich
31/08/2009
Boa tarde,
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.
Como converto esse valor 102364,78 para R$ 102.364,78, tentei formatfloat mas não fui muito feliz (talvez não usei certo).
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
Rweberich
31/08/2009
Boa tarde,
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.
Como converto esse valor 102364,78 para R$ 102.364,78, tentei formatfloat mas não fui muito feliz (talvez não usei certo).
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
Pestana_
31/08/2009
E ai pessoal, desculpa :oops: ... eu coloquei informação errada ai nos posts anteriores ... o real problema é :
O valor que retorna da consulta no banco é [b:51ea1888ae]10236478[/b:51ea1888ae]
E estou usando o seguinte código:
Mas ele me retorna sempre [b:51ea1888ae]10.236.478,00[/b:51ea1888ae] e eu precisso realmente de [b:51ea1888ae]102.364,78[/b:51ea1888ae]
Tentei a dica do [i:51ea1888ae].Lg.[/i:51ea1888ae] e tb não deu muito certo.
Obrigado.
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
Vitor Rubio
31/08/2009
Existe uma variável global chamada DecimalSeparator.
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.
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