[Delphi] Formatar valores float (máscara)

08/05/2017

0

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

Responder

Post mais votado

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

Wesley Yamazack

Wesley Yamazack
Responder

Mais Posts

08/05/2017

Gladstone Matos

muito show obrigado Wesley!
Responder

08/05/2017

Raimundo Pereira

Trunc?
Responder

23/02/2022

Wanderson Cardoso




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!
Responder

23/02/2022

Gladstone Matos

ola Wanderson bom dia

Q tal utilizar FormatFloat('0.00',valor)

isso resolve?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar