Formatação de Campo Numeric(FB)

24/07/2008

1

Preciso gravar uma informação proveniente de um arquivo texto. O arquivo é tipo:
000000025489
Acontece que na minha tabela eu tenho o campo Numeric(9,2). Logo preciso passar para com um ponto decimal nas duas últimas posições, assim:
0000000254.89
Se eu der um FormatFloat, vai vir virgula e não ponto. Como faço para colocar ponto e gravar no banco? Já coloquei máscara no EditFormat e não deu certo. Esses campos são varridos num texto e vão sendo jogado para a tabela, dentro de While. Não posso mudar minhas configurações regionais, pois tem outras coisas que precisam dela.


Responder

Posts

24/07/2008

Joaoshi

Colega,

poderia dividir o numero por 100 ou
executar o formatfloat e em seguida um [b:ef7c8687cd]stringreplace[/b:ef7c8687cd] de , para .

Espero ter ajudado.


Responder

24/07/2008

Luiz Henrique

Bom dia , Paulo...tudo blz

Fiz uma funcao para me formatar/retornar valores no formato FDB e outros bancos tbm...
Ilustracao:
Funcao GetFDBNumeric(_Valor: Real; _dec: integer): String;
begin
...
valido o valor
algum ajuste se necessario
...
//Confirmo o formato, salvando o atual...
_DecSep:= DecimalSeparator;
_ThoSep:= ThousandSeparator;

//Configuro para a funcao FormatFloat, retornar . para decimal
DecimalSeparator:= ´.´;
ThousandSeparator:= ´,´;

result:= FormatFloat(´0.´+stringofchar(´0´,_dec),_Valor);

DecimalSeparator:= _DecSep;
ThousandSeparator:= _ThoSep;
end

+- isso, sei la, deve ter outras formas, mas uso esta para praticamente tudo que se refere a valor com decimal

Espero que ajude...T+


Responder

24/07/2008

Luiz Henrique

[quote=´Luiz Henrique´]

...retorno String porque uso a funcao no preenchimento de Strings(Insert´s, Update´s).. ´, ´+GetFDBNumeric(_valor,9,2)+´,´.......


Responder

24/07/2008

Paulo

Resolvi. A resposta era muito óbvia.
strtofloat(Valor) / 100;
Depois disso eu dei um StringReplace para retirar a vírgula e colocar o ponto.


Responder
×
+1 DevUP
Acesso diário, +1 DevUP
Parabéns, você está investindo na sua carreira