_fcvt
Convertir un nombre à virgule flottante en chaîne. Une version plus sécurisée de cette fonction est disponible ; voir _fcvt_s
.
Syntaxe
char *_fcvt(
double value,
int count,
int *dec,
int *sign
);
Paramètres
value
Nombre à convertir.
count
Nombre de chiffres après la virgule décimale.
dec
Pointeur désignant la position de la virgule décimale stockée.
sign
Pointeur désignant l’indicateur de signe stocké.
Valeur retournée
_fcvt
retourne un pointeur vers la chaîne de chiffres, NULL
en cas d’erreur.
Notes
La fonction _fcvt
convertit un nombre à virgule flottante en une chaîne de caractères se terminant par un caractère Null. Le paramètre value
est le nombre à virgule flottante à convertir. _fcvt
stocke les chiffres de value
sous forme de chaîne et ajoute un caractère null (« \0 »). Le paramètre count
spécifie le nombre de chiffres à stocker après la virgule décimale. Les chiffres en trop sont arrondis au niveau de count
positions après la virgule. Si le nombre de chiffres de précision est inférieur à count
, la chaîne est remplie de zéros.
Le nombre total de chiffres retournés par _fcvt
ne dépasse _CVTBUFSIZE
pas .
Seuls des chiffres sont stockés dans la chaîne. La position de la virgule décimale et le signe de value
peuvent être obtenus à partir de dec
et sign après l’appel. Le paramètre dec
désigne une valeur entière ; celle-ci indique la position de la virgule décimale par rapport au début de la chaîne. Une valeur entière ou zéro indique que la virgule décimale est située à gauche du premier chiffre. Le paramètre sign
désigne un entier indiquant le signe de value
. L’entier est défini sur 0 si value
est positif, et sur un nombre différent de zéro si value
est négatif.
La différence entre _ecvt
et _fcvt
réside dans l’interprétation du paramètre count
. _ecvt
interprète count
comme le nombre total de chiffres dans la chaîne de sortie, tandis que _fcvt
interprète count
en tant que nombre de chiffres après la virgule décimale.
_ecvt
et _fcvt
utilisent une seule mémoire tampon allouée de manière statique pour la conversion. Chaque appel à une de ces routines détruit les résultats de l’appel précédent.
Cette fonction valide ses paramètres. Si dec
ou est NULL
, ou count
sign
est 0, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l’exécution est autorisée à continuer, errno
est définie EINVAL
sur , et NULL
est retournée.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Spécifications
Fonction | En-tête requis |
---|---|
_fcvt |
<stdlib.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_fcvt.c
// compile with: /W3
// This program converts the constant
// 3.1415926535 to a string and sets the pointer
// buffer to point to that string.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int decimal, sign;
char *buffer;
double source = 3.1415926535;
buffer = _fcvt( source, 7, &decimal, &sign ); // C4996
// Note: _fcvt is deprecated; consider using _fcvt_s instead
printf( "source: %2.10f buffer: '%s' decimal: %d sign: %d\n",
source, buffer, decimal, sign );
}
source: 3.1415926535 buffer: '31415927' decimal: 1 sign: 0
Voir aussi
Conversion de données
Prise en charge mathématique et à virgule flottante
atof
, _atof_l
, _wtof
, _wtof_l
_ecvt
_gcvt
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour