Condividi tramite


_gcvt

Converte un valore in virgola mobile in una stringa, che sono memorizzate in un buffer. È disponibile una versione più sicura di questa funzione; consultare _gcvt_s.

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

Parametri

  • value
    Valore da convertire.

  • digits
    Numero di cifre significative archiviate.

  • buffer
    Percorso di archiviazione per il risultato.

Valore restituito

_gcvt restituisce un puntatore alla stringa di cifre.

Note

La funzione _gcvt converte un value in virgola mobile in una stringa di caratteri (che include un separatore decimale e un possibile byte di segno) e archivia la stringa in buffer. Il buffer deve essere grande a sufficienza per contenere il valore convertito più un carattere di terminazione null, che viene aggiunto automaticamente. Se viene utilizzata la dimensione del buffer digits + 1, la funzione sovrascrive la fine del buffer. Questo perché la stringa convertita include un separatore decimale e può contenere le informazioni sull'esponente ed il segno. Non esiste alcuna operazione di overflow. _gcvt tenta di generare le cifre digits in formato decimale. Se non è possibile, produce le cifre digits in formato esponenziale. Gli zeri finali potrebbero essere eliminati nella conversione.

Un buffer buffer di lunghezza _CVTBUFSIZE è sufficiente per qualsiasi valore in virgola mobile.

Questa funzione convalida i parametri. Se buffer è NULL, viene richiamato il gestore di parametro non valido, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, la funzione imposta errno e imposta EINVAL su NULL.

Requisiti

Routine

Intestazione obbligatoria

_gcvt

<stdlib.h>

Per ulteriori informazioni sulla compatibilità, vedere Compatibilità nell'introduzione.

Esempio

// 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) );
}
  

Equivalente .NET Framework

System::Convert::ToString

Vedere anche

Riferimenti

Conversione dei dati

Supporto a virgola mobile

atof, _atof_l, _wtof, _wtof_l

_ecvt

_fcvt