![]() |
|
||||
![]() Planilha Web - Planilhas e Calculadoras online para estudantes e profissionais de Engenharia Civil, Engenharia Elétrica e Engenharia Mecânica. |
|||||
Você está aqui: Delphi ::: Dicas & Truques ::: Formatação de datas, strings e números |
Como usar a função FormatFloat() para formatar valores de ponto-flutuante em DelphiQuantidade de visualizações: 65400 vezes |
A função FormatFloat() é muito útil quando queremos formatar valores de ponto-flutuante (valores que possuem a parte fracionária) em Delphi. Esta função recebe um padrão de formatação e o valor a ser formatado e retorna uma string. Veja um exemplo no qual formatamos o valor de PI com 2 casas decimais:procedure TForm1.Button1Click(Sender: TObject); var resultado: string; begin // vamos formatar o valor de PI com 2 casas decimais resultado := FormatFloat('#.00', PI); // vamos exibir o resultado ShowMessage(resultado); end; O resultado será exibido como 3,14. Note que aqui nós informamos o ponto como separador decimal. No entanto, o Delphi busca o separador decimal na variável global DecimalSeparator, usada para facilitar a internacionalização, visto que este valor é obtido a partir das configurações regionais do Windows. Para tirar o máximo proveito da função FormatFloat(), é necessário conhecer os especificadores de formato: 0 - Marcador de dígito. Se o valor a ser formatado tiver um dígito na posição ocupada por "0" na string de formatação, então este dígito é copiado para a string resultante. Do contrário, um "0" é guardado nesta posição na string resultante. Veja, por exemplo, como podemos formatar um valor sempre com 5 posições antes da vírgula: procedure TForm1.Button1Click(Sender: TObject); var valor: double; resultado: string; begin valor := 4.50; // vamos formatar o valor com 5 posições antes da vírgula resultado := FormatFloat('00000.00', valor); // vamos exibir o resultado ShowMessage(resultado); end; # - Marcador de dígito. Se o valor a ser formatado tiver um dígito na posição ocupada por "0" na string de formatação, então este dígito é copiado para a string resultante. Do contrário, nada é guardado nesta posição na string resultante. . - O primeiro caractere "." encontrado na string de formatação determina a posição do separador decimal na string resultante. Quaisquer caracteres "." encontrados após o primeiro "." serão ignorados. O caractere do separador decimal é determinado pela variável global DecimalSeparator ou seu equivalente TFormatSettings. , - Separador de milhares. Se a string de formatação tiver um ou mais caracteres ".", o resultado terá separadores de milhares entre cada grupo de três dígitos à esquerda do ponto decimal. A posição e quantidade de "." não afeta o resultado, exceto para informar que os separadores de milhares são necessários. O caractere do separador decimal é determinado pela variável global ThousandSeparator ou seu equivalente TFormatSettings. Veja um exemplo no qual exibimos o valor 43765,15 com o separador de milhar: procedure TForm1.Button1Click(Sender: TObject); var valor: double; resultado: string; begin valor := 43765.15; // vamos formatar o valor usando o separador de milhares resultado := FormatFloat(',.00', valor); // vamos exibir o resultado ShowMessage(resultado); end; E+ - Notação científica. Se qualquer uma das strings 'E+', 'E-', 'e+' ou 'e-' estiver contida na string de formatação, o valor será formatado usando notação científica. Um grupo de até quatro caracteres "0" poderá ser inserido após 'E+', 'E-', 'e+', ou 'e-' para determinar o número máximo de dígitos no expoente. O 'E+' e 'e+' provocará um sinal de positivo para a formatação de números positivos e um sinal de negativo para a formatação de números negativos. O 'E-' e 'e-' provocará um sinal negativo apenas para expoentes negativos. 'xx'/"xx" - Caracteres em asplas simples ou duplas são exibidos sem formatação. ; - Usado para separar seções para números positivos, negativos e zeros na string de formatação. Usamos isso quando queremos que valores positivos, negativos ou zerados sejam formatados de forma diferente. Veja um último exemplo, desta vez formatando um valor em moeda brasileira (durante a autoria desta dica, a moeda usada é reais): procedure TForm1.Button1Click(Sender: TObject); var valor: double; resultado: string; begin valor := 43765.15; // vamos formatar o valor usando o separador de milhares // e a moeda brasileira: reais resultado := FormatFloat('"R$ ",.00', valor); // vamos exibir o resultado ShowMessage(resultado); end; Para fins de compatibilidade, esta dica foi escrita usando Delphi 2009. |
![]() |
Desafios, Exercícios e Algoritmos Resolvidos de Delphi |
Veja mais Dicas e truques de Delphi |
Dicas e truques de outras linguagens |
C# - C# Windows Forms - Como verificar o estado da tecla Num Lock em suas aplicações C# Windows Forms |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |