Dúvida com formatação de valor lendo de um txt
Amigos!
Estou fazendo a leitura de um arquivo .txt, a informação vem neste formato:
00000000003786
Neste exemplo o valor seria 37,86, mais quando mando fazer a formatação o valor vem outro pois não está separado com uma virgula, alguém sabe como resolver isso?
Agradeço!
Estou fazendo a leitura de um arquivo .txt, a informação vem neste formato:
00000000003786
Neste exemplo o valor seria 37,86, mais quando mando fazer a formatação o valor vem outro pois não está separado com uma virgula, alguém sabe como resolver isso?
Agradeço!
procedure TForm1.Button1Click(Sender: TObject);
var
Valor :Double;
begin
valor := StrToFloatDef('0000000003786',0);
ShowMessage(FloatToStr(Valor));
// valor := StrToFloatDef('37,86',0);
Label1.Caption := FormatFloat('##,##0.00',Valor);
Label2.Caption := FormatFloat('#,0.00',Valor);
end;
Itamar Souza
Curtidas 0
Melhor post
Jaime Santos
09/03/2015
Tente acrescentar antes de associar o valor ao Label a seguinte linha: valor := valor / 100;
procedure TForm1.Button1Click(Sender: TObject);
var
Centavos,Centena,Milhar, texto, Resultado :String;
valor :Double;
begin
valor := 0000000003786;
Texto := FormatFloat('0000000000000', Valor);
Centavos := Copy( Texto, 12, 2 );
Centena := Copy( Texto, 10, 2 ) + ',' ;
Milhar := Copy( Texto, 9, 1 ) ;
Resultado := Milhar + Centena + Centavos;
valor := StrToFloat (Resultado) ;
//acrescente isso
valor := valor / 100;
Label1.Caption := FormatFloat('#,0.00',Valor);
end;GOSTEI 1
Mais Respostas
Itamar Souza
09/03/2015
Estou fazendo desta forma, alguém tem outra solução?
agradeço!
agradeço!
procedure TForm1.Button1Click(Sender: TObject);
var
Centavos,Centena,Milhar, texto, Resultado :String;
valor :Double;
begin
valor := 0000000003786;
Texto := FormatFloat('0000000000000', Valor);
Centavos := Copy( Texto, 12, 2 );
Centena := Copy( Texto, 10, 2 ) + ',' ;
Milhar := Copy( Texto, 9, 1 ) ;
Resultado := Milhar + Centena + Centavos;
valor := StrToFloat (Resultado) ;
Label1.Caption := FormatFloat('#,0.00',Valor);
end;
GOSTEI 0
Jaime Santos
09/03/2015
Não testei aqui, mas caso funcione seu código pode ser melhorado para:
ou
procedure TForm1.Button1Click(Sender: TObject);
var
sValor : String;
fValor: Double;
begin
sValor := '0000000003786';
fValor := StrToFloat (sValor) / 100;
Label1.Caption := FormatFloat('#,0.00',fValor);
end;ou
procedure TForm1.Button1Click(Sender: TObject);
var
sValor : String;
begin
sValor := '0000000003786';
Label1.Caption := FormatFloat('#,0.00', (StrToFloat (sValor) / 100));
end;GOSTEI 0
Itamar Souza
09/03/2015
Agradeço jaime.
Deu certo!
Deu certo!
GOSTEI 1