Provided by: manpages-fr-dev_3.65d1p1-1_all bug

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, ...);

DESCRIPTION

       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.65 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

       Depuis    2010,    cette   traduction   est   maintenue   à   l'aide   de   l'outil   po4a
       <http://po4a.alioth.debian.org/> par l'équipe de traduction francophone au sein du  projet
       perkamon <http://perkamon.alioth.debian.org/>.

       Christophe    Blaess    <http://www.blaess.fr/christophe/>   (1996-2003),   Alain   Portal
       <http://manpagesfr.free.fr/> (2003-2006). Nicolas  François  et  l'équipe  francophone  de
       traduction de Debian (2006-2009).

       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> ».