FormatFloat (rtl)

De Wiki1000
(Différences entre les versions)
 
 
Ligne 17 : Ligne 17 :
 
La chaîne de format doit utiliser les spécificateurs suivant :
 
La chaîne de format doit utiliser les spécificateurs suivant :
  
0Emplacement d'un chiffre. Si la valeur formatée dispose d'un chiffre à la position du '0' dans la chaîne de format, ce chiffre est copié dans la chaîne en sortie. Sinon, un '0' est inclus à cette position dans la chaîne en sortie.
+
* 0 Emplacement d'un chiffre. Si la valeur formatée dispose d'un chiffre à la position du '0' dans la chaîne de format, ce chiffre est copié dans la chaîne en sortie. Sinon, un '0' est inclus à cette position dans la chaîne en sortie.
  
#Emplacement d'un chiffre. Si la valeur formatée dispose d'un chiffre à la position du '#' dans la chaîne de format, ce chiffre est copié dans la chaîne en sortie. Sinon, rien n'est inclus à cette position dans la chaîne en sortie.
+
* # Emplacement d'un chiffre. Si la valeur formatée dispose d'un chiffre à la position du '#' dans la chaîne de format, ce chiffre est copié dans la chaîne en sortie. Sinon, rien n'est inclus à cette position dans la chaîne en sortie.
  
.Séparateur décimal. Le premier caractère '.' 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. La valeur par défaut de DecimalSeparator est définie dans le groupe Format des nombres de la section International du Panneau de configuration Windows.
+
* . Séparateur décimal. Le premier caractère '.' 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. La valeur par défaut de DecimalSeparator est définie dans le groupe Format des nombres de la section International du Panneau de configuration Windows.
  
,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. La valeur par défaut de ThousandSeparator est définie dans le groupe Format des nombres de la section International du Panneau de configuration Windows.
+
* , 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. La valeur par défaut de ThousandSeparator est définie dans le groupe Format des nombres de la section International du Panneau de configuration Windows.
  
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 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.
+
* 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 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 compris entre des guillemets simples ou doubles sont renvoyés tels quels et n'affectent pas le format.
+
* 'xx'/"xx" Les caractères compris entre des guillemets simples ou doubles sont renvoyés tels quels et n'affectent pas le format.
;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.
+
* ; Sépare les sections des nombres positifs, négatifs et nuls dans la chaîne de format.
  
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.
+
* 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.
  
Si, dans la valeur numérique formatée, le nombre de chiffres à gauche de la virgule est supérieur à celui prévu à gauche du séparateur décimal '.' dans la chaîne de format, les chiffres en trop sont inclus avant l'emplacement du premier chiffre.
+
* 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.
  
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.
+
* Si, dans la valeur numérique formatée, le nombre de chiffres à gauche de la virgule est supérieur à celui prévu à gauche du séparateur décimal '.' dans la chaîne de format, les chiffres en trop sont inclus avant l'emplacement du premier chiffre.
  
S'il y a une section : la chaîne de format s'applique à toutes les valeurs.
+
* 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.
S'il y a deux sections : la première section s'applique aux valeurs positives et nulles et la deuxième aux valeurs négatives.
+
S'il y a 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.
+
**S'il y a une section : la chaîne de format s'applique à toutes les valeurs.
 +
**S'il y a deux sections : la première section s'applique aux valeurs positives et nulles et la deuxième aux valeurs négatives.
 +
**S'il y a 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 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.
+
* 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.
  
 
Exemple
 
Exemple
  
 
<source lang='delphi'>
 
<source lang='delphi'>
 +
procedure foo(v:double);
 
begin
 
begin
 +
  ShowMessage(FormatFloat('0.00',v));
 
end;
 
end;
 
</source>
 
</source>
Ligne 57 : Ligne 60 :
 
{{Footer|Développement DSM}}
 
{{Footer|Développement DSM}}
 
[[category:RTL Conversion]]
 
[[category:RTL Conversion]]
 

Version actuelle en date du 11 août 2009 à 16:10

Function FormatFloat(const Format:String; Value:Float):String;

FormatFloat convertit une valeur flottante en chaîne de caractères en utilisant un spécificateur de format.

Result Valeur convertie.
Format Format de conversion.
Value Valeur à convertir.

La chaîne de format doit utiliser les spécificateurs suivant :

  • 0 Emplacement d'un chiffre. Si la valeur formatée dispose d'un chiffre à la position du '0' dans la chaîne de format, ce chiffre est copié dans la chaîne en sortie. Sinon, un '0' est inclus à cette position dans la chaîne en sortie.
  • # Emplacement d'un chiffre. Si la valeur formatée dispose d'un chiffre à la position du '#' dans la chaîne de format, ce chiffre est copié dans la chaîne en sortie. Sinon, rien n'est inclus à cette position dans la chaîne en sortie.
  • . Séparateur décimal. Le premier caractère '.' 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. La valeur par défaut de DecimalSeparator est définie dans le groupe Format des nombres de la section International du Panneau de configuration Windows.
  • , 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. La valeur par défaut de ThousandSeparator est définie dans le groupe Format des nombres de la section International du Panneau de configuration Windows.
  • 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 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 compris entre des guillemets simples ou doubles sont renvoyés tels quels et n'affectent pas le format.
  •  ; 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, dans la valeur numérique formatée, le nombre de chiffres à gauche de la virgule est supérieur à celui prévu à gauche du séparateur décimal '.' dans la chaîne de format, les chiffres en trop sont inclus avant l'emplacement du premier 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.
    • S'il y a une section : la chaîne de format s'applique à toutes les valeurs.
    • S'il y a deux sections : la première section s'applique aux valeurs positives et nulles et la deuxième aux valeurs négatives.
    • S'il y a 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.

Exemple

procedure foo(v:double);
begin
  ShowMessage(FormatFloat('0.00',v));
end;

Voir aussi:

Développement DSMDéveloppement DSM

Outils personnels