Fórum Converter Float para String! #499778
31/10/2014
0
Porem na hora q mando gravar em vez de ele gravar 176,00 ele só grava 176.
Creio q seja pq ele mostre como float e se eu tento reconverter pra string o delphi nao aceita.
procedure TForm1.Edit5KeyPress(Sender: TObject; var Key: Char);
VAR NUM1, NUM2, NUM3 : Real;
num4,num5 : string;
begin
begin
key:=AnsiUpperCase(Key)[1];
if key = #13 then
begin
SelectNext (ActiveControl,true,true);
key := #0;
if edit5.Text = '' then
edit5.Text := '0';
NUM1 := Strtofloat ( Edit4.Text);
NUM2 := Strtofloat ( Edit5.Text);
NUM3 := (NUM1 - NUM2);
NUM4 := FloatToStr(NUM3);
edit6.Text:= Formatfloat('#####0.00',strtofloat(NUM4));Nelson Filho
Curtir tópico
+ 0Posts
31/10/2014
Luiz
Segundo: "Creio q seja pq ele mostre como float e se eu tento reconverter pra string o delphi nao aceita." - Porque você tenta reconverter para string?" - Não é mais fácil no banco de dados você criar o campo como float? e não como string para precisar reconverter ...
Gostei + 0
01/11/2014
Nelson Filho
NUM1 := Strtofloat ( Edit4.Text);
NUM2 := Strtofloat ( Edit5.Text);
NUM3 := (NUM1 - NUM2);
NUM4 := FloatToStr(NUM3);
edit6.Text:= Formatfloat('#####0.00',strtofloat(NUM4));Pq meu problema é só fazer gravar com o 00 quando o numero é redondo se a conta der 176,52 blz ele grava mas se der 176,00 ele só grava como 176......
Gostei + 0
01/11/2014
Joel Rodrigues
1) Converte o texto do edit4 para float. - OK
2) Converte o texto do edit5 para float. - OK
3) Faz uma operação matemática com os valores obtidos. - OK
4) Converte o resultado para string. - PRA QUÊ?
5) Pega aquele texto convertido e converte novamente para float, para então exibir no edit. - RETRABALHO
Você poderia manter as duas primeiras linhas e fazer simplesmente o seguinte:
Edit6.Text := FormatFloat('#,##0.00', NUM3);ou ainda
Edit6.Text := FormatFloat('#,##0.00', (NUM1-NUM2));Outra coisa: em termos de valores numéricos, 176 é a mesma coisa de 176,00. Então alguns bancos não colocam as casas decimais de valores inteiros, pois isso não é necessário. Você só precisa se preocupar com isso na hora de exibir o valor.
Caso você esteja usando algum dataset (TQuery, TADOQuery, etc), os TFields possuem uma propriedade chamada DisplayFormat, que você pode setar como #,##0.00.
Gostei + 0
01/11/2014
Nelson Filho
Tem como eu fazer algo no rave design pra por o #,##0.00 ?
E eu só uso ibquery ibupadate datasourse ibtransation
Gostei + 0
04/11/2014
Joel Rodrigues
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)