JonatasFn 0 Denunciar post Postado Janeiro 12, 2010 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
wllf 2 Denunciar post Postado Janeiro 12, 2010 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
JonatasFn 0 Denunciar post Postado Janeiro 12, 2010 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
Raficcha 1 Denunciar post Postado Janeiro 12, 2010 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
JonatasFn 0 Denunciar post Postado Janeiro 12, 2010 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
Chrnos 30 Denunciar post Postado Janeiro 12, 2010 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
JonatasFn 0 Denunciar post Postado Janeiro 12, 2010 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
Raficcha 1 Denunciar post Postado Janeiro 12, 2010 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 0 Denunciar post Postado Janeiro 12, 2010 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
JonatasFn 0 Denunciar post Postado Janeiro 13, 2010 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
itepi 0 Denunciar post Postado Janeiro 13, 2010 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
JonatasFn 0 Denunciar post Postado Janeiro 14, 2010 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
itepi 0 Denunciar post Postado Janeiro 15, 2010 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