strfromd
Table des matières
Retour à l'index
NOM
strfromd, strfromf, strfroml - Convertir des nombres en virgule flottante en
chaînes de caractères
BIBLIOTHÈQUE
Bibliothèque C standard (libc, -lc)
SYNOPSIS
#include <stdlib.h>
int strfromd(char str[restrict .n], size_t n,
const char *restrict format, double fp);
int strfromf(char str[restrict .n], size_t n,
const char *restrict format, float fp);
int strfroml(char str[restrict .n], size_t n,
const char *restrict format, long double fp);
Exigences de macros de test de fonctionnalités pour la glibc (consulter
feature_test_macros(7)) :
strfromd(), strfromf(), strfroml() :
__STDC_WANT_IEC_60559_BFP_EXT__
DESCRIPTION
Ces fonctions convertissent une valeur en virgule flottante, fp, en une
chaîne de caractères, str, selon une chaîne configurable format. Au
plus n caractères sont écrits dans str.
The terminating null byte ('\0') is written if and only if n is
sufficiently large, otherwise the written string is truncated at n
characters.
Les fonctions strfromd(), strfromf() et strfroml() sont
équivalentes à :
snprintf(str, n, format, fp);
excepté pour la chaîne format.
CHAÎNE DE FORMAT
La chaîne format doit débuter par le caractère « % ». Il est suivi d'une
précision optionnelle qui commence au caractère point (.), suivie d'un
entier optionnel en base décimale. Si aucun entier n'est donné après le
caractère point, une précision de zéro est utilisée. Enfin, la chaîne de
formatage doit contenir un des indicateurs de conversion a, A, e,
E, f, F, g ou G.
L'indicateur de conversion est appliqué en se basant sur le type de virgule
flottante indiqué par le suffixe de la fonction. Ainsi, et à la différence
de snprintf(), la chaîne de formatage ne contient pas de caractère de
modification de longueur. Consultez snprintf(3) pour une description
détaillée de ces indicateurs de conversion.
L'implémentation est conforme à la norme C99 concernant la conversion de NaN
et de valeurs infinies :
-
Si fp est NaN, +NaN ou -NaN et f (ou a, e, g) est
l'indicateur de conversion, la conversion se fait vers « nan », « nan » ou
« -nan » respectivement. Si F (ou A, E, G) est l'indicateur de
conversion, la conversion est alors faite vers « NAN » ou « -NAN ».
De même si fp est infini, il est converti en [-]inf ou [-]INF.
Une chaîne format malformée entraîne un comportement non défini.
VALEUR RENVOYÉE
Les fonctions strfromd(), strfromf() et strfroml() renvoient le
nombre de caractères qui aurait été écrits dans str si n avait eu
assez d'espace, sans compter l'octet NULL final. Ainsi, une valeur de retour
de n ou plus signifie que la sortie a été tronquée.
ATTRIBUTS
Pour une explication des termes utilisés dans cette section, consultez
attributes(7) et la section POSIX Safety Concepts dans le manuel de la
Bibliothèque C GNU.
| Interface | Attribut | Valeur
|
|
strfromd(),
strfromf(),
strfroml()
| Sécurité des threads | MT-Safe locale
|
| Sécurité signaux async | AS-Unsafe heap |
| Sécurité signaux async | AC-Unsafe mem |
Note : ces attributs sont préliminaires
STANDARDS
ISO/IEC TS 18661-1.
VERSIONS
- strfromd()
-
strfromf()
strfroml()
glibc 2.25.
NOTES
Ces fonctions prennent en compte la catégorie LC_NUMERIC de la locale
utilisée.
EXEMPLES
Pour convertir la valeur 12.1 en tant que type flottant en une chaîne
utilisant la notation décimale, résultant en « 12.100000 » :
#define __STDC_WANT_IEC_60559_BFP_EXT__
#include <stdlib.h>
int ssize = 10;
char s[ssize];
strfromf(s, ssize, "%f", 12.1);
Pour convertir la valeur 12.3456 en tant que type flottant en une chaîne
utilisant la notation décimale avec une précision de deux chiffres après la
virgule, résultant en « 12.35 » :
#define __STDC_WANT_IEC_60559_BFP_EXT__
#include <stdlib.h>
int ssize = 10;
char s[ssize];
strfromf(s, ssize, "%.2f", 12.3456);
Pour convertir la valeur 12.345e19 en tant que type double en une chaîne
utilisant la notation scientifique avec aucun chiffre après la virgule,
résultant en « 1E+20 » :
#define __STDC_WANT_IEC_60559_BFP_EXT__
#include <stdlib.h>
int ssize = 10;
char s[ssize];
strfromd(s, ssize, "%.E", 12.345e19);
VOIR AUSSI
atof(3), snprintf(3), strtod(3)
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@laposte.net>,
Thierry Vignaud <tvignaud@mandriva.com>,
François Micaux,
Alain Portal <aportal@univ-montp2.fr>,
Jean-Philippe Guérard <fevrier@tigreraye.org>,
Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>,
Julien Cristau <jcristau@debian.org>,
Thomas Huriaux <thomas.huriaux@gmail.com>,
Nicolas François <nicolas.francois@centraliens.net>,
Florentin Duneau <fduneau@gmail.com>,
Simon Paillard <simon.paillard@resel.enst-bretagne.fr>,
Denis Barbier <barbier@debian.org>,
David Prévot <david@tilapin.org>
et
Grégoire Scano <gregoire.scano@malloc.fr>
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 à
Index
- NOM
-
- BIBLIOTHÈQUE
-
- SYNOPSIS
-
- DESCRIPTION
-
- CHAÎNE DE FORMAT
-
- VALEUR RENVOYÉE
-
- ATTRIBUTS
-
- STANDARDS
-
- VERSIONS
-
- NOTES
-
- EXEMPLES
-
- VOIR AUSSI
-
- TRADUCTION
-
This document was created by
man2html,
using the manual pages.
Time: 05:06:27 GMT, September 19, 2025