formatar string

14/02/2006

como formatar a string 00000014457 para 144.57 ?

a string tem 11 caracteres onde os 2 últimos são as casas decimais do valor.


Josinaldo

Respostas

14/02/2006

Sanses

Olá

Olha, deve ter alguma função que faça isso. Mas não me lembro agora. Então considere este código como uma solução ´GAMBIARRA´ para o caso:
var
  i : integer;
  s,s1 : string;
begin
  i := length(edit1.text);
  s := copy(edit1.text, 1, i-2);
  s := formatfloat(´#0´, strtofloat(s));
  s1 := copy(edit1.text, 10, 11);
  edit2.text := s+´,´+s1;
end;

ela pega o tamanho da string, separa os ultimos 2 números que são as casas decimais. Feito isso formata os valor que sobra e uunta tudo. Mas vale lembrar: DEVE HAVER UMA MANEIRA MAIS PROFFICIONAL DE SE FAZER ISSO...

[]´s
Sanses


Responder Citar

14/02/2006

Josinaldo

Obrigado Sanses pela ´GAMBIARRA´ :) , realmente funciona, mas se alguem souber de alguma função mais simples agradeço.


Responder Citar

14/02/2006

Imoreira

formatfloat(´,0.00´,strtofloat([color=red:6b429c9e2d]SuaString[/color:6b429c9e2d])/100);


Responder Citar

14/02/2006

Josinaldo

formatfloat(´,0.00´,strtofloat([color=red:c27ee2a44f]SuaString[/color:c27ee2a44f])/100);


Era isso mesmo, valeu.


Responder Citar

15/02/2006

Joni Nunes

Sao tantas as possibilidades

procedure TForm1.Button1Click(Sender: TObject);
var
v : String;
begin
v := ´00000014457´;
Label1.Caption := FormatFloat(´#,´, StrToFloat(v));
//00000014457 para 144.57 ?
end;


procedure TForm1.Button1Click(Sender: TObject);
begin
Label1.Caption := FormatFloat(´,´, 00000014457);
//00000014457 para 144.57 ?
end;


Responder Citar