System.SysUtils.FormatFloat

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

function FormatFloat(const Format: string; Value: Extended): string;
function FormatFloat(const Format: string; Value: Extended;
const AFormatSettings: TFormatSettings): string;

C++

extern DELPHI_PACKAGE System::UnicodeString __fastcall FormatFloat(const System::UnicodeString Format, System::Extended Value)/* overload */;

Propriétés

Type Visibilité  Source Unité  Parent
function public
System.SysUtils.pas
System.SysUtils.hpp
System.SysUtils System.SysUtils

Description

Description

Formate une valeur à virgule flottante.

FormatFloat définit le format de la valeur flottante Value en utilisant la chaîne de format fournie par Format. Les spécificateurs de format reconnus dans la chaîne de format sont les suivants.


Spécificateur Signification
0 Emplacement d'un chiffre. Si la valeur en cours de formatage a un chiffre à la position où '0' apparaît dans la chaîne de formatage, alors ce chiffre est copié dans la chaîne de sortie. Sinon, un '0' est inclus à cette position dans la chaîne en sortie.
# Emplacement d'un chiffre. Si la valeur en cours de formatage a un chiffre à la position où '#' apparaît dans la chaîne de formatage, alors ce chiffre est copié dans la chaîne de sortie. Sinon, rien n'est inclus à cette position dans la chaîne en sortie.
. Séparateur décimal. Le premier caractère point '.' dans la chaîne de format détermine l'emplacement du séparateur décimal dans la valeur formatée ; les caractères '.' supplémentaires sont ignorés. Le caractère effectivement utilisé comme séparateur décimal dans la chaîne en sortie est déterminé par la variable globale DecimalSeparator ou son équivalent TFormatSettings.
, Séparateur des milliers. Si la chaîne de format contient un ou plusieurs caractères ',', un séparateur des milliers sera inséré entre chaque groupe de trois chiffres situés à gauche de la virgule. L'emplacement et le nombre de caractères ',' dans la chaîne de format n'affecte en rien la sortie ; la présence de ce caractère indique simplement que les milliers doivent être séparés. Le caractère effectivement utilisé comme séparateur décimal dans la chaîne en sortie est déterminé par la variable globale ThousandSeparator ou son équivalent TFormatSettings.
E+ Notation scientifique. Si l'une des quatre chaînes 'E+', 'E-', 'e+' ou 'e-' est incluse dans la chaîne de format, le nombre est formaté en utilisant la notation scientifique. Un groupe de quatre caractères '0' au plus peut immédiatement suivre la chaîne 'E+', 'E-', 'e+' ou 'e-' afin de déterminer le nombre minimum de chiffres de l'exposant. Les spécificateurs de format 'E+' et 'e+' provoquent l'apparition d'un signe plus pour les exposants positifs et d'un signe moins pour les exposants négatifs. 'E-' et 'e-' ne provoquent l'apparition du signe que pour les exposants négatifs.
'xx'/"xx" Les caractères encadrés par des guillemets simples ou doubles sont renvoyés tels quels et n'affectent pas le formatage.
; Sépare les sections des nombres positifs, négatifs et nuls dans la chaîne de format.


Les emplacements du '0' le plus à gauche avant la virgule dans la chaîne de format et du '0' le plus à droite après cette même virgule déterminent l'étendue de chiffres qui seront toujours présents dans la chaîne en sortie.

Le nombre formaté est toujours arrondi en fonction du nombre de décimales prévues ('0' ou '#') à droite de la virgule dans la chaîne de format. Si cette dernière ne contient pas de séparateur décimal, la valeur formatée est arrondie au nombre entier le plus proche.

Si le nombre en cours de formatage a plus de chiffres à la gauche du séparateur décimal qu'il n'y a d'emplacements de chiffres à la gauche du caractère '.' dans la chaîne de formatage, les chiffres supplémentaires sont sortis avant le premier emplacement de chiffre.

La chaîne de format peut contenir une, deux ou trois sections séparées par des points-virgules pour autoriser des formats différents pour les valeurs positives, négatives et nulles, comme suit :

  • Une section : la chaîne de format s'applique à toutes les valeurs.
  • Deux sections : la première section s'applique aux valeurs positives et nulles et la deuxième aux valeurs négatives.
  • Trois sections : la première section s'applique aux valeurs positives, la deuxième aux valeurs négatives, et la troisième aux valeurs nulles.

Si la section des valeurs négatives ou celle des valeurs nulles est vide (il n'y a rien entre les points-virgules qui délimite cette section), c'est la section des valeurs positives qui est utilisée.

Si la section des valeurs positives est vide ou si la chaîne de format est vide dans son ensemble, la valeur est formatée en utilisant le format flottant général avec 15 chiffres significatifs, ce qui équivaut à un appel à FloatToStrF avec le format ffGeneral. Ce type de format est également utilisé si la valeur dispose de plus de 18 chiffres à gauche du séparateur décimal et si la chaîne de format n'indique pas la notation scientifique.

La première forme de FormatFloat n'est pas adaptée aux threads car elle utilise les informations de localisation contenues dans les variables globales. La seconde forme de FormatFloat, qui est adaptée aux threads, fait référence aux informations de localisation contenues dans le paramètre AFormatSettings. Avant d'appeler la forme adaptée aux threads de FormatFloat, vous devez placer les informations de localisation dans AFormatSettings. Pour placer un ensemble de valeurs locales par défaut dans AFormatSettings, appelez TFormatSettings.Create.

Voir aussi

Exemples de code