FormatFloat

Cette fonction permet de formater un nombre réel à l'affichage.

Syntaxe

function FormatFloat(format: String; val: Float): String
format : Spécificateur de format d'affichage (voir la syntaxe dans le tableau ci-dessous)
val : valeur à formater

Remarques

Les chaînes de format transmises aux routines de définition de format de chaînes contiennent deux types d'objets : les caractères simples et les spécificateurs de format. Les caractères simples sont copiés tels quels dans la chaîne résultante. Les spécificateurs de format récupèrent les arguments dans la liste des arguments en y appliquant un format.

Les spécificateurs de format ont la forme suivante : "%" [index ":"] ["-"] [largeur] ["." prec] type

Un spécificateur de format commence par un caractère %. Ce qui suit % est, dans l'ordre:

  • un spécificateur facultatif d'indice à base 0 de l'argument (le premier élément a l'indice 0), [index ":"]
  • l'indicateur facultatif d'alignement à gauche, ["-"]
  • le spécificateur facultatif de taille, [largeur]
  • le spécificateur facultatif de précision, ["." prec]
  • le caractère de type de conversion
Caractère de type de formatValeur
dDécimal.
L'argument doit être une valeur entière. La valeur est convertie en une chaîne de chiffres décimaux. Si la chaîne de format contient un spécificateur de précision, la chaîne résultante doit contenir au moins le nombre indiqué de chiffres ; si cela n'est pas le cas, des caractères zéro de remplissage sont rajoutés dans la partie gauche de la chaîne.
uDécimal sans signe.
Comme 'd' mais sans signe en sortie.
eScientifique.
L'argument doit être une valeur flottante. La valeur est convertie en une chaîne de la forme "-d.ddd...E+ddd". La chaîne résultante débute par un signe moins si le nombre est négatif. Un chiffre précède toujours le séparateur décimal.Le nombre total de chiffres dans la chaîne résultante (y compris celui qui précède la virgule) est donné par le spécificateur de précision dans la chaîne de format. Si celui-ci est omis, une précision de 15 est prise en compte par défaut. Le caractère "E" dans la chaîne résultante est toujours suivi d'un signe plus ou moins, puis de trois chiffres au moins.
fFixe.
L'argument doit être une valeur flottante. La valeur est convertie en une chaîne de la forme "-ddd.ddd...". La chaîne résultante débute par un signe moins si le nombre est négatif.Le nombre de chiffres après la virgule est fourni par le spécificateur de précision de la chaîne de format ; 2 décimales sont prises en compte par défaut si le spécificateur de précision est omis.
gGénéral.
L'argument doit être une valeur flottante. La valeur est convertie en une chaîne décimale la plus courte possible en utilisant le format fixe ou scientifique. Le nombre de chiffres significatifs dans la chaîne résultante est fourni par le spécificateur de précision dans la chaîne de format : une précision par défaut de 15 est prise en compte si le spécificateur de précision est omis.Les caractères zéro sont supprimés de la fin de la chaîne résultante et la virgule décimale n'apparaît que si elle est nécessaire. La chaîne résultante utilise le format fixe si le nombre de chiffres à gauche de la virgule est inférieur ou égal à la précision indiquée et si la valeur est supérieure ou égale à 0,00001. Sinon, la chaîne résultante fait appel au format scientifique.
nNumérique L'argument doit être une valeur flottante.
La valeur est convertie en une chaîne de la forme "-d,ddd,ddd.ddd...". Le format "n" correspond au format "f", sauf que la chaîne résultante contient le séparateur des milliers.
mMonétaire.
L'argument doit être une valeur flottante. La valeur est convertie en une chaîne représentant un montant monétaire. La conversion est contrôlée par les variables globales CurrencyString, CurrencyFormat, NegCurrFormat, ThousandSeparator, DecimalSeparator et CurrencyDecimals ou leur équivalent dans une structure de données TFormatSettings. Si la chaîne de format contient un spécificateur de précision, il remplace la valeur envoyée par la variable globale CurrencyDecimals ou son équivalent TFormatSettings.
pPointeur.
L'argument doit être une valeur de type pointeur. La valeur est convertie en une chaîne de 8 caractères qui représente des valeurs de pointeur en hexadécimal.
sChaîne.
L'argument doit être un caractère, une chaîne ou une valeur PChar. La chaîne ou le caractère est inséré à la place du spécificateur de format. Le spécificateur de précision, s'il est défini dans la chaîne de format, indique la taille maximale de la chaîne résultante. Si l'argument est une chaîne de taille supérieure, celle-ci est tronquée.
xHexadécimal.
L'argument doit être une valeur entière. La valeur est convertie en une chaîne de chiffres hexadécimaux. Si la chaîne de format contient un spécificateur de précision, ce dernier spécifie que la chaîne doit contenir au moins le nombre indiqué de chiffres ; si cela n'est pas le cas, des caractères zéro de remplissage sont rajoutés dans la partie gauche de la chaîne.

Voir aussi FloatToStr.

Exemple

var s: String;
s:=FormatFloat('%.2f', 54.3333);
InformationDlg(s); // affichage de '54.33'
s:=FormatFloat('%m', 54.3333);
InformationDlg(s); // affichage de '54.33 €' ou un autre format monétaire en fonction des options de formatage monétaire du poste
s:=FormatFloat('%.3e',1/70000);
InformationDlg(s); // affichage de '1.43E-005'

Classification

SysUtils