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