NOM
strfmon, strfmon_l - convert monetary value to a string
SYNOPSIS
#include <monetary.h>
ssize_t
strfmon(char *s, size_t max,
const char *format,
...);
ssize_t
strfmon_l(char *s, size_t max,
locale_t locale,
const char *" format , ...);
DESCRIPTION
The strfmon() function formats the specified monetary amount according to the current locale and format specification format and places the result in the character array s of size max.
The strfmon_l() function performs the same task, but uses the locale specified by locale. The behavior of strfmon_l() is undefined if locale is the special locale object LC_GLOBAL_LOCALE (see duplocale(3)) or is not a valid locale object handle.
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.
ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consulter attributes(7).
CONFORMITÉ
POSIX.1-2001, POSIX.1-2008.
EXEMPLES
L’appel
strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]", 1234.567, 1234.567);
affiche
[⬠**1234,57] [EUR **1 234,57]
in the nl_NL locale. The de_DE, de_CH, en_AU, and en_GB locales yield
[ **1234,57 â¬] [ **1.234,57 EUR] [ Fr. **1234.57] [ CHF **1’234.57] [ $**1234.57] [ AUD**1,234.57] [ £**1234.57] [ GBP**1,234.57]
VOIR AUSSI
duplocale(3), setlocale(3), sprintf(3), locale(7)
COLOPHON
Cette page fait partie de la publication 5.07 du projet man-pages Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page, peuvent être trouvées à l’adresse https://www.kernel.org/doc/man-pages/.
TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin [AT] laposte.net>, Thierry Vignaud <tvignaud [AT] mandriva.com>, François Micaux, Alain Portal <aportal [AT] univ-montp2.fr>, Jean-Philippe Guérard <fevrier [AT] tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon [AT] wanadoo.fr>, Julien Cristau <jcristau [AT] debian.org>, Thomas Huriaux <thomas.huriaux [AT] gmail.com>, Nicolas François <nicolas.francois [AT] centraliens.net>, Florentin Duneau <fduneau [AT] gmail.com>, Simon Paillard <simon.paillard [AT] resel.fr>, Denis Barbier <barbier [AT] debian.org> et David Prévot <david [AT] tilapin.org>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n’y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à <debian-l10n-french [AT] lists.org>.