Loading

NOM

       strfmon - Convertir des valeurs monétaires en chaînes de caractères.

SYNOPSIS

       #include <monetary.h>

       ssize_t strfmon(char *s, size_t max, const char *format, ...);

       La  fonction strfmon() met en forme les valeurs transmises, en fonction
       des spécifications de la chaîne de format et place le résultat dans  la
       chaîne de caractère s de taille max.

       Les  caractères ordinaires de format sont copié dans s sans conversion.
       Les indicateurs de conversion sont introduits par un  caractère  « % ».
       Immédiatement  à  sa  suite, il peut y avoir zéro ou plusieurs drapeaux
       parmi les suivants :

       =f     Le  caractère  unique  f  sert  comme  caractère  numérique   de
              remplissage  (à  utiliser avec une précision à gauche, voir plus
              bas). Sans indication, il s’agit du caractère espace.

       ^      Ne pas utiliser les caractères de regroupement (par milliers par
              exemple) qui peuvent être définis pour la localisation en cours.
              Par défaut, le groupement est actif.

       ( or + L’attribut « ( » indique que les valeurs négatives doivent  être
              encadrées  entre  parenthèses.  L’attribut  « + » indique que le
              signe doit être traité de la manière  par  défaut,  c’est-à-dire
              les  valeurs  précédées  de  l’indication  locale  de signe. Par
              exemple, rien pour les  valeurs  positives  et  « - »  pour  les
              négatives.

       !      Omettre le signe monétaire.

       -      Justifier tous les champs à gauche. Par défaut, la justification
              est à droite.

       Ensuite, peut venir un champ de largeur : un chiffre décimal  indiquant
       la  largeur  minimale  en  octets. Par défaut, elle vaut 0. Un résultat
       plus petit que cette largeur est complété avec des espaces (à gauche  à
       moins que la justification soit à gauche).

       Ensuite, il peut y avoir une précision à gauche de la forme « # » suivi
       par une chaîne de chiffres décimaux. Si le nombre de chiffres à  gauche
       de  la  virgule  est  inférieur  à  cette valeur, la représentation est
       complétée à gauche avec le caractère de remplissage. Les caractères  de
       groupement ne sont pas comptés dans la largeur du champ.

       Ensuite, il peut y avoir une précision à droite de la forme « . » suivi
       par une chaîne de chiffres décimaux. La valeur est arrondie à ce nombre
       de  décimales  avant  d’être  mise  en  forme. La valeur par défaut est
       précisée  dans  les  champs  frac_digits  et  int_frac_digits   de   la
       localisation  en  cours.  Si la précision à droite est 0, aucun symbole
       décimal  n’est  affiché  (le  symbole   décimal   est   déterminé   par
       LC_MONETARY, et peut différer de celui indiqué dans LC_NUMERIC).

       Finalement,  la  spécification  de  conversion  doit se terminer par un
       caractère de conversion. Les trois caractères disponibles sont :

       %      (Dans ce cas, la  spécification  entière  doit  être  exactement
              « %%»). Placer un caractère « % » dans la chaîne de résultat.

       i      Un argument de type double est converti en utilisant les formats
              internationaux des monnaies dans la localisation en cours.

       n      Un argument de type double est converti en utilisant les formats
              nationaux des monnaies dans la localisation en cours.

VALEUR RENVOYÉE

       La  fonction  strfmon()  renvoie le nombre de caractères placés dans la
       chaîne s, sans compter le caractère nul final,  à  condition  que  tout
       tienne  dans  le  tampon  fourni. Sinon, il rempli errno avec la valeur
       E2BIG et renvoie -1. Le contenu de la chaîne est indéfini dans ce  cas.

CONFORMITÉ

       Pas dans POSIX.1-2001. Présente sur plusieurs autres systèmes.

EXEMPLE

       L’appel

           strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]",
                   1234.567, 1234.567);

       affiche

           [ fl **1234,57] [ NLG **1 234,57]

       Dans  la  localisation  hollandaise  (fl  étant  « florijnen »  et  NLG
       «Netherlands Guilders »). Le caractère de groupement est  horrible  car
       il  prend autant de place qu’un chiffre, alors qu’il ne devrait occuper
       qu’un demi-espace, ce qui  peut  induire  en  erreur.  Étonnamment,  le
       « fl »  est  précédé et suivi par un espace, et « NLG » est précédé par
       un espace et suivi par deux. Il s’agit peut-être  d’un  bogue  dans  le
       fichier  de  localisation.  Les  localisations italienne, australienne,
       suisse, et portugaise donnent

           [ L. **1235] [ ITL **1.235]
           [ $**1234.57] [ AUD **1,234.57]
           [Fr. **1234,57] [CHF **1.234,57]
           [ **1234$57Esc] [ **1.234$57PTE ]

VOIR AUSSI

       setlocale(3), sprintf(3), locale(7)

COLOPHON

       Cette page fait partie de  la  publication  3.23  du  projet  man-pages
       Linux.  Une description du projet et des instructions pour signaler des
       anomalies      peuvent      être       trouvées       à       l’adresse
       http://www.kernel.org/doc/man-pages/.

TRADUCTION

       Cette  page  de  manuel  a  été  traduite et mise à jour par Christophe
       Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003, puis  par
       Alain  Portal  <aportal AT univ-montp2 DOT fr> jusqu’en 2006, et mise à
       disposition sur http://manpagesfr.free.fr/.

       Les mises à jour et corrections de la version présente dans Debian sont
       directement         gérées         par         Nicolas         François
       <nicolas.francois@centraliens.net>   et   l’équipe    francophone    de
       traduction de Debian.

       Veuillez   signaler   toute   erreur   de   traduction  en  écrivant  à
       <debian-l10n-french@lists.debian.org> ou par un rapport de bogue sur le
       paquet manpages-fr.

       Vous  pouvez  toujours avoir accès à la version anglaise de ce document
       en utilisant la commande « man -L C <section> <page_de_man> ».