Partager via


_gcvt

Convertit une valeur en virgule flottante en une chaîne, qu'elle stocke dans une mémoire tampon. Des versions plus sécurisées de ces fonctions sont disponibles ; consultez _gcvt_s.

char *_gcvt( 
   double value,
   int digits,
   char *buffer 
);

Paramètres

  • value
    Valeur à convertir.

  • digits
    Nombre de chiffres significatifs stockés.

  • buffer
    Emplacement de stockage du résultat.

Valeur de retour

_gcvt retourne un pointeur vers la chaîne de chiffres.

Notes

La fonction _gcvt convertit un value à virgule flottante en une chaîne de caractères (incluant une virgule et éventuellement un octet de signe) et enregistre la chaîne dans buffer. buffer doit être suffisamment grande pour contenir la valeur convertie et un caractère NULL de fin, qui est ajouté automatiquement. Si une taille de mémoire tampon valant digits + 1 est utilisée, la fonction remplace la fin de la mémoire tampon. Cela est dû au fait que la chaîne convertie inclut une virgule et peut contenir des informations de signe et d'exposant. Il n'y a aucune provision pour un dépassement de capacité. _gcvt tente de générer des chiffres digits au format décimal. S'il est impossible, il génère des chiffres digits au format exponentiel. Les zéros à droite peuvent être supprimés de la conversion.

Une buffer de longueur _CVTBUFSIZE est suffisante pour n'importe quelle valeur à virgule flottante.

Cette fonction valide ses paramètres. Si buffer est NULL, le gestionnaire de paramètres non valides est appelé, comme décrit dans Validation de paramètre. Si l'exécution est autorisée à se poursuivre, cette fonction paramètre errno à EINVAL et renvoie NULL.

Configuration requise

Routine

En-tête requis

_gcvt

<stdlib.h>

Pour plus d'informations sur la compatibilité, consultez Compatibilité dans l'introduction.

Exemple

// crt_gcvt.c
// compile with: /W3
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main( void )
{
   char buffer[_CVTBUFSIZE];
   double value = -1234567890.123;
   printf( "The following numbers were converted by _gcvt(value,12,buffer):\n" );
   _gcvt( value, 12, buffer ); // C4996
   // Note: _gcvt is deprecated; consider using _gcvt_s instead
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value *= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );

   printf( "\n" );
   value = -12.34567890123;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
   value /= 10;
   _gcvt( value, 12, buffer ); // C4996
   printf( "buffer: '%s' (%d chars)\n", buffer, strlen(buffer) );
}
  

Équivalent .NET Framework

System::Convert::ToString

Voir aussi

Référence

Conversion de données

Prise en charge de la virgule flottante

atof, _atof_l, _wtof, _wtof_l

_ecvt

_fcvt