[Delphi] Formatar valores float (máscara)

Delphi

08/05/2017

boa tarde a todos!

Como eu posso formatar um valor FLOAT no Delphi?

Por exemplo, de:

0.9843783


para:

0.98


?


muito obrigado!
Gladstone Matos

Gladstone Matos

Curtidas 0

Melhor post

Wesley Yamazack

Wesley Yamazack

08/05/2017

Opa Gladstone, tudo bem?

Existe uma função em delphi chamada FormatFloat, localizada na unit SysUtils. Seu objetivo é formatar valores de ponto flutuante.

Existem algumas variações para ela, vou citar rapidamente para você entender:

Edit1.Text := formatfloat('#####', var_real);
Edit1.Text := formatfloat('00000', var_real);
Edit1.Text := formatfloat('0'    , var_real);
Edit1.Text := formatfloat('#,##0', var_real);
Edit1.Text := ormatfloat(',0'   , var_real);
Edit1.Text := formatfloat('R$ #,##0', var_real);


Veja um exemplo simples de como implementa-la:

procedure TForm1.Button1Click(Sender: TObject);
var
  r: real;
begin
  r:= 0.9843783;
  Edit1.Text := formatfloat('0.##',r);
end;


O macete está na linha
  Edit1.Text := formatfloat('0.##',r);


O seu resultado será:
0.98


Qualquer coisa é só falar.
Grande abraço
GOSTEI 2

Mais Respostas

Gladstone Matos

Gladstone Matos

08/05/2017

muito show obrigado Wesley!
GOSTEI 0
Raimundo Pereira

Raimundo Pereira

08/05/2017

Trunc?
GOSTEI 1
Wanderson Cardoso

Wanderson Cardoso

08/05/2017




situação (exemplo):

> BD firebird 2.5.9

> Tabela: Item_Venda

> No Delphi: --> Sidney 10.4 (free)

Tabela: Item_Venda:
===================
- id_venda integer not null
- id_produto integer not null
- qtd_unit integer -> unidade (cada)
- preço_unit numeric(9,2) { fdquery.qtd_preco_unit.DisplayFormat: ###,##0.00 }
- qtd_pesokg numeric(5,3) -> peso (quilograma) { fdquery.qtd_pesokg.DisplayFormat: 00.000 }
- preço_pesokg numeric(9,2) { fdquery.qtd_preco_pesokg.DisplayFormat: ###,##0.00 }
- valor_total numeric(9,2) -> valor total item { fdquery.valor_total.DisplayFormat: ###,##0.00 }

Onde, o valor_total recebe multiplicação de ( qtd_unit x preco_unit ) ou ( qtd_pesokg x preco_pesokg ).

Problema:
- Qandoo a entrada for de um produto em quilograma, o valor_total receberia calculo de ( qtd_pesokg x preco_pesokg ).

Exemplo:

ID ID
VENDA PRODUTO DESCRICAO QTDE PR_UNIT. PESO_KG PR_KG VR_TOTAL
----------------------------------------------------------------------------------------
10001 1001 oleo de soja 900ml 01 R$ 7,00 null null R$ 7,00
10001 1003 batata inglesa 01 null 01,242 R$ 5,98 R$ 7,42 (real = 7,42716)

Duvida:
- como fazer arrendondamento de (real = 7,42716) para 7,43 por exemplo?

Desculpa pelo exemplo feito na pressa, mas gostaria da opinião da galera dev.
Muito obrigado!
GOSTEI 1
Gladstone Matos

Gladstone Matos

08/05/2017

ola Wanderson bom dia

Q tal utilizar FormatFloat('0.00',valor)

isso resolve?
GOSTEI 0
POSTAR