Condividi tramite


_ecvt

Converte un numero double in una stringa. È disponibile una versione più sicura di questa funzione; vedere _ecvt_s.

Sintassi

char *_ecvt(
   double value,
   int count,
   int *dec,
   int *sign
);

Parametri

value
Numero da convertire.

count
Numero di cifre archiviate.

dec
Posizione del separatore decimale archiviata.

sign
Segno del numero convertito.

Valore restituito

_ecvt restituisce un puntatore alla stringa di cifre; NULL se si è verificato un errore.

Osservazioni:

La funzione _ecvt converte un numero a virgola mobile in una stringa di caratteri. Il parametro value è il numero a virgola mobile da convertire. Questa funzione consente di archiviare fino a count cifre di value come stringa e aggiunge un carattere null ('\0'). Se il numero di cifre in value supera count, la cifra meno significativa viene arrotondata. Se ci sono meno di count cifre, la stringa viene riempita con zeri.

Il numero totale di cifre restituite da _ecvt non supererà _CVTBUFSIZE.

Nella stringa vengono archiviate solo cifre. La posizione del separatore decimale e il segno di value possono essere ottenuti da dec e sign dopo la chiamata. Il parametro dec punta a un valore intero che indica la posizione del separatore decimale rispetto all'inizio della stringa. Uno zero o un valore intero negativo indica che il separatore decimale si trova a sinistra della prima cifra. Il parametro sign punta a un valore intero che indica il segno del numero convertito. Se il valore intero è 0, il numero è positivo. In caso contrario, il risultato sarà negativo.

La differenza tra _ecvt e _fcvt consiste nell'interpretazione del parametro count. _ecvt interpreta count come numero totale di cifre nella stringa di output, mentre _fcvt interpreta count come numero di cifre dopo il separatore decimale.

_ecvt e _fcvt usano un singolo buffer allocato in modo statico per la conversione. Ogni chiamata a una di queste routine elimina definitivamente i risultati della chiamata precedente.

Questa funzione convalida i relativi parametri. Se dec o sign è o count è o è NULL0, viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri. Se l'esecuzione può continuare, errno viene impostata su EINVAL e NULL viene restituita.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Requisiti

Funzione Intestazione obbligatoria
_ecvt <stdlib.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

// 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

Vedi anche

Conversione dati
Supporto matematico e a virgola mobile
atof, _atof_l, _wtof_wtof_l
_fcvt
_gcvt