Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Convertit un nombre double en chaîne. Une version plus sécurisée de cette fonction est disponible ; voir _ecvt_s.
Syntaxe
char *_ecvt(
double value,
int count,
int *dec,
int *sign
);
Paramètres
value
Nombre à convertir.
count
Nombre de chiffres stockés.
dec
Position de la virgule décimale stockée.
sign
Signe du nombre converti.
Valeur retournée
_ecvt retourne un pointeur vers la chaîne de chiffres ; NULL si une erreur s’est produite.
Notes
La fonction _ecvt convertit un nombre à virgule flottante en une chaîne de caractères. Le paramètre value est le nombre à virgule flottante à convertir. Cette fonction stocke jusqu’à count chiffres de value sous forme de chaîne et ajoute un caractère null (« \0 »). Si le nombre de chiffres dans value dépasse count, le chiffre de poids faible est arrondi. S’il y a moins de count chiffres, la chaîne est remplie de zéros.
Le nombre total de chiffres retournés par _ecvt ne dépasse _CVTBUFSIZEpas .
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 pointe vers une valeur entière indiquant la position de la virgule décimale par rapport au début de la chaîne. Une valeur entière ou 0 indique que la virgule décimale est située à gauche du premier chiffre. Le paramètre sign pointe vers un entier qui indique le signe du nombre converti. Si la valeur entière est 0, le nombre est positif. Sinon, le nombre 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 le résultat 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 sur EINVAL 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 |
|---|---|
_ecvt |
<stdlib.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// crt_ecvt.c
// compile with: /W3
// This program uses _ecvt to convert a
// floating-point number to a character string.
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int decimal, sign;
char *buffer;
int precision = 10;
double source = 3.1415926535;
buffer = _ecvt( source, precision, &decimal, &sign ); // C4996
// Note: _ecvt is deprecated; consider using _ecvt_s instead
printf( "source: %2.10f buffer: '%s' decimal: %d sign: %d\n",
source, buffer, decimal, sign );
}
source: 3.1415926535 buffer: '3141592654' decimal: 1 sign: 0
Voir aussi
Conversion de données
Prise en charge des fonctions mathématiques et à virgule flottante
atof, , _atof_l_wtof, ,_wtof_l
_fcvt
_gcvt