Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

JonatasFn

[Resolvido] Campo moeda

Recommended Posts

Pessoal to com um problema aqui.

 

Eu to fazendo um calculo para armezenar no BD um valor. A rotina é esta:

 


valor : Double;
valor_d: String;

valor := quantidade * StrToFloat(dbeValor.Text);
valor_d := FormatFloat('###,##0.00',valor);

Feito isso eu armazeno o valor de valor_d no BD MySQL, o campo que estou usando é Decimal(10,2).

 

Eu mando exibir uma mensagem com o valor_d, e ele exibe 2,30. O problema é no BD, só fica armazenado 2,3 sem o zero no final.

 

O que está errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sou iniciante em MySQL mas acho que a declaração do campo como Decimal não vai dar certo, acho eu q o certo seria em Real.

 

Estou acompanhando sua dúvida para aprender um pouco !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sou iniciante em MySQL mas acho que a declaração do campo como Decimal não vai dar certo, acho eu q o certo seria em Real.

 

Estou acompanhando sua dúvida para aprender um pouco !!!

 

Olá wllf, espero que consiga resolver. Mas mudando o tipo do campo para Float dá na mesma.

 

E tentei mudar a variavel de Double para Real e continuou ...

 

E pra ajudar agora quando vou cadastrar 2,30 ele está arredondando para 2,0.

Compartilhar este post


Link para o post
Compartilhar em outros sites

caro JonatasFn, ele apaga o "Zero" do final pois "2,30" e "2,3" são exatamente a mesma coisa. O Zero não esta para as casas decimais assimo como esta para os numeros inteiros (20, 30). Existem duas maneiras de se resolver isso. Uma delas é formatando o numero para adicionar o zero e a outra é salvar o numero como outro formato (varchar).

Compartilhar este post


Link para o post
Compartilhar em outros sites

caro JonatasFn, ele apaga o "Zero" do final pois "2,30" e "2,3" são exatamente a mesma coisa. O Zero não esta para as casas decimais assimo como esta para os numeros inteiros (20, 30). Existem duas maneiras de se resolver isso. Uma delas é formatando o numero para adicionar o zero e a outra é salvar o numero como outro formato (varchar).

 

 

Olá Raficcha, sobre os numeros eu já havia sacado, o problema é a estetica disto. Pois não existe R$2,3 mas sim R$2,30.

 

Usar varchar creio que irá dar mais trabalho pois preciso fazer calculos com estes valores e para isso precisarei tratar os dados para obter resultados, sendo que usando decimal, posso simplesmente fazer calculos diretamente usando query.

 

você já me ajudou muito aqui no forum. O que você me propõe como solução?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde você precisa exibir estes dados? Em edits? Porque não os formata na hora de exibí-los?

 

[]'s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde você precisa exibir estes dados? Em edits? Porque não os formata na hora de exibí-los?

 

[]'s

 

Vou exibir em um DBGrid.

Compartilhar este post


Link para o post
Compartilhar em outros sites

JonatasFn, olha so o que encontrei pra você. Lembrei de uma função chamada FormatFloat, mas não me lembro muito bem como utilizar. Então procurei no Google e encontrei isto:

 

http://www.delphibasics.co.uk/RTL.asp?Name=FormatFloat

 

Espero que ajude.

 

:D

Compartilhar este post


Link para o post
Compartilhar em outros sites

JonatasFn, olha so o que encontrei pra você. Lembrei de uma função chamada FormatFloat, mas não me lembro muito bem como utilizar. Então procurei no Google e encontrei isto:

 

http://www.delphibasics.co.uk/RTL.asp?Name=FormatFloat

 

Espero que ajude.

 

:D

 

Valeu Raficcha! Eu já estava usando esta função(código acima), mas vou dar uma olhada.

 

O que eu não sei é como colocar isso no DBGrid.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra me ajudar, agora o BD tá arredondando. Assim eu insiro 2,3 ele tá arredondando para 2,0.

 

O que eu mexi que bichou o campo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra me ajudar, agora o BD tá arredondando. Assim eu insiro 2,3 ele tá arredondando para 2,0.

 

O que eu mexi que bichou o campo?

 

Fala grande JonataFn beleza? Ja conseguiu resolver seu problema?

Se não conseguiu ainda tente o seguinte.

Primeiramente no BD volte o campo para DECIMAL(10,2). Nos meus sistemas utilizo DECIMAL(18,2).

E com relação a estetica de aparecer R$ 2,3 ou R$ 2,30 é só formatar o campo diretamente no objeto TQuery(TSQLQuery, TZQuery, TADOQuery) ai nao importa que componente você use (DBGrid, DBEdit, etc) aparecerá sempre formatado.

 

Vou tentar fazer uma explicação mais passo a passo de como formatar no TQuery, vamos lá:

 

1º - Defina a consulta SQL no componente TQuery, por exemplo " SELECT * FROM TABELA "

2º - Clique duas vezes sobre o componente TQuery, uma pequena telinha com um listbox se abrirá

3º - Clique com o botão direito sobre essa tela e clique em " Add all fields "

4º - Selecione o campo que deseja formatar

5º - Nas propriedades dele haverá uma chamada currency modifique-a para TRUE

 

Acho que é isso ai, qualquer coisa posta ai... http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

Pra me ajudar, agora o BD tá arredondando. Assim eu insiro 2,3 ele tá arredondando para 2,0.

 

O que eu mexi que bichou o campo?

 

Fala grande JonataFn beleza? Ja conseguiu resolver seu problema?

Se não conseguiu ainda tente o seguinte.

Primeiramente no BD volte o campo para DECIMAL(10,2). Nos meus sistemas utilizo DECIMAL(18,2).

E com relação a estetica de aparecer R$ 2,3 ou R$ 2,30 é só formatar o campo diretamente no objeto TQuery(TSQLQuery, TZQuery, TADOQuery) ai nao importa que componente você use (DBGrid, DBEdit, etc) aparecerá sempre formatado.

 

Vou tentar fazer uma explicação mais passo a passo de como formatar no TQuery, vamos lá:

 

1º - Defina a consulta SQL no componente TQuery, por exemplo " SELECT * FROM TABELA "

2º - Clique duas vezes sobre o componente TQuery, uma pequena telinha com um listbox se abrirá

3º - Clique com o botão direito sobre essa tela e clique em " Add all fields "

4º - Selecione o campo que deseja formatar

5º - Nas propriedades dele haverá uma chamada currency modifique-a para TRUE

 

Acho que é isso ai, qualquer coisa posta ai... http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif

 

Fala Itepi, beleza? Valew pelo post cara... salvou a minha vida. A respeito do campo no BD eu já havia desfeito a cag... que tinha feito no código.

 

Mas sobre esta opção do currency na query, putz... me saiu melhor que encomenda.

 

Só me falta testar se o SUM do mysql não dá problemas.

 

Valew mesmo Itepi!!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

 

Pra me ajudar, agora o BD tá arredondando. Assim eu insiro 2,3 ele tá arredondando para 2,0.

 

O que eu mexi que bichou o campo?

 

Fala grande JonataFn beleza? Ja conseguiu resolver seu problema?

Se não conseguiu ainda tente o seguinte.

Primeiramente no BD volte o campo para DECIMAL(10,2). Nos meus sistemas utilizo DECIMAL(18,2).

E com relação a estetica de aparecer R$ 2,3 ou R$ 2,30 é só formatar o campo diretamente no objeto TQuery(TSQLQuery, TZQuery, TADOQuery) ai nao importa que componente você use (DBGrid, DBEdit, etc) aparecerá sempre formatado.

 

Vou tentar fazer uma explicação mais passo a passo de como formatar no TQuery, vamos lá:

 

1º - Defina a consulta SQL no componente TQuery, por exemplo " SELECT * FROM TABELA "

2º - Clique duas vezes sobre o componente TQuery, uma pequena telinha com um listbox se abrirá

3º - Clique com o botão direito sobre essa tela e clique em " Add all fields "

4º - Selecione o campo que deseja formatar

5º - Nas propriedades dele haverá uma chamada currency modifique-a para TRUE

 

Acho que é isso ai, qualquer coisa posta ai... http://forum.imasters.com.br/public/style_emoticons/default/natal_happy.gif

 

Fala Itepi, beleza? Valew pelo post cara... salvou a minha vida. A respeito do campo no BD eu já havia desfeito a cag... que tinha feito no código.

 

Mas sobre esta opção do currency na query, putz... me saiu melhor que encomenda.

 

Só me falta testar se o SUM do mysql não dá problemas.

 

Valew mesmo Itepi!!!!!

 

Que isso cara...precisando estamos as ordens....boa sorte ai no seu projeto...abraço!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.