Como gravar campo numério sempre em 4 casas decimais....
pessoal tenho um campo numérico...preciso q qndo o usuário digitar um número de 1 (uma) casa decimal ele grave sempre em 4 (quatro) casas decimais. :roll:
ex: usuario digita 1...delphi grava no banco 0001
usuario digita 10...delphi grava no banco 0010
usuario digita 100...delphi grava no banco 0100
usuario digita 1000...delphi grava no banco 1000
OBS: Utilizo o FireBird 1.0 como Bd!!!
ex: usuario digita 1...delphi grava no banco 0001
usuario digita 10...delphi grava no banco 0010
usuario digita 100...delphi grava no banco 0100
usuario digita 1000...delphi grava no banco 1000
OBS: Utilizo o FireBird 1.0 como Bd!!!
Hviana
Curtidas 0
Respostas
Lucas Silva
20/08/2004
um exemplo;
query.FieldByName(´Campo´).AsString := FormatFloat(´0.0000´, StrToFloat(edit.text);
GOSTEI 0
Vinicius2k
20/08/2004
Colega,
Creio que vc esteja enganado...
Isso não são casas decimais... são ´zeros à esquerda´... e se este campo no banco for do tipo Inteiro, vc nunca vai conseguir gravar desta forma...
Se for apenas para efeitos de exibição e edição, em componentes data-aware, como códigos por exemplo, utilize as propriedades DisplayFormat e EditFormat do TField...
No exemplo que vc citou a máscara seria #0000...
Se vc realmente quiser gravar assim no banco, vai precisar mudar o tipo de dado para Varchar, e formatar antes de gravar com algo parecido com isto :
ou
Caso vc não queira mudar o tipo de dado no banco, mas precise desta formatação para outra coisa qualquer, como gerar um arquivo texto, ou imprimir, por exemplo, use :
T+
Creio que vc esteja enganado...
Isso não são casas decimais... são ´zeros à esquerda´... e se este campo no banco for do tipo Inteiro, vc nunca vai conseguir gravar desta forma...
Se for apenas para efeitos de exibição e edição, em componentes data-aware, como códigos por exemplo, utilize as propriedades DisplayFormat e EditFormat do TField...
No exemplo que vc citou a máscara seria #0000...
Se vc realmente quiser gravar assim no banco, vai precisar mudar o tipo de dado para Varchar, e formatar antes de gravar com algo parecido com isto :
Format(´¬4.4d´,[StrToInt(SUA_VAR_STRING)])
ou
Format(´¬4.4d´,[(SUA_VAR_INTEGER)])
Caso vc não queira mudar o tipo de dado no banco, mas precise desta formatação para outra coisa qualquer, como gerar um arquivo texto, ou imprimir, por exemplo, use :
Format(´¬4.4d´,[(SEU_CAMPO_INTEGER)])
T+
GOSTEI 0
Rockbilly
20/08/2004
Olá colega, fiz uma função aqui, deve resolver tenta ai:
function campoF(valor: integer): string; var n: integer; x: string; begin n:= Length(IntToStr(valor)); case n of 1: x:= ´000´+IntToStr(valor); 2: x:= ´00´+IntToStr(valor); 3: x:= ´0´+IntToStr(valor); else x:= IntToStr(valor); end; campoF := x; end; procedure TForm1.Button1Click(Sender: TObject); var str: string; begin str:= campoF(StrToInt(Edit1.Text)); ShowMessage(str); end;
GOSTEI 0