Ir para conteúdo

POWERED BY:

Arquivado

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

flavioavilela

FormatFloat depois tirar formatação pra salvar

Recommended Posts

galera, é o seguinte: estou usando o formatfloat pra formatar uns campos que tenho aqui.... beleza... eu digito um número, pressiono enter e funfa beleza.... formata como eu quero.... só que, quando eu vou salvar, eu preciso tirar a formatação, pois o bd nao aceita (meu bd é o sqlserver)... só que, por exemplo, quando eu mando tirar a formatação pra salvar, por exemplo que em uma caixa texto eu digitei 5, pressionei enter ele faz 5,00... quando eu tiro a formatação pra salvar, ele salva como 500(quinhentos)... ai, quando eu utilizo esses números pra fazer umas contas aqui, ele entendi que é 500 e nao 5............... oq fazer neste caso??????

para tirar a formatação estou utilizando StringReplace(Edit1.text, '.', '', [rfReplaceAll]) e StringReplace(Edit1.text, ',','', [rfReplaceAll])............. removo a , e o . .....

alguém pode me dar uma luz nisso ai?????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Em vez de usar o StringReplace na hora de gravar... se usar o StrToFloat (Edit1.text) não grava o valor correto no BD?

 

 

obs.: coloquei o comando trocado antes, hehe.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola colega, tudo joia? eita, que saudade desse forum rsrsr

você consegue resolver facilmente o seu problema:

DecimalSeparator:= '.';
//Aqui você invoca o metodo que salva os registros 
DecimalSeparator:= ',';

Compartilhar este post


Link para o post
Compartilhar em outros sites

Colega, estava vendo aqui melhor seu código (agora com a cabeça mais descansada hehehe) e observei uma coisa... você diz que em seu programa executa estes comandos:

 

StringReplace(Edit1.text, '.', '', [rfReplaceAll]);

StringReplace(Edit1.text, ',','', [rfReplaceAll]);

 

Perceba que, ao fazer isso, você está transformando seu valor de 5,00 para 500, pois retirou os separadores decimais do valor final da sua variável a ser gravada e isso, para o BD, enviará o valor errado. Se não me engano, para gravar os valores corretos no SQLServer, você precisa mudar a vírgula do 5,00 para 5.00, de modo que seu código deveria ser assim:

 

//Retirar os '.' dos separadores de milhar

StringReplace(Edit1.text, '.', '', [rfReplaceAll]);

//Substituir a ',' que indica as casas decimais por um '.'

StringReplace(Edit1.text, ',','.', [rfReplaceAll]);

 

Acho que isso resolverá seu problema.

 

[]'s

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.