Condividi tramite


_fcvt

Converte un numero a virgola mobile in una stringa. È disponibile una versione più sicura di questa funzione; vedere _fcvt_s.

Sintassi

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

Parametri

value
Numero da convertire.

count
Numero di cifre dopo il separatore decimale.

dec
Puntatore alla posizione del separatore decimale archiviata.

sign
Puntatore all'indicatore di segno archiviato.

Valore restituito

_fcvt restituisce un puntatore alla stringa di cifre, NULL in caso di errore.

Osservazioni:

La funzione _fcvt converte un numero a virgola mobile in una stringa di caratteri che termina con NULL. Il parametro value è il numero a virgola mobile da convertire. _fcvt archivia le cifre di value come stringa e aggiunge un carattere null ('\0'). Il parametro count specifica il numero di cifre da archiviare dopo il separatore decimale. Le cifre in eccesso vengono arrotondate a count posti. Se ci sono meno di count cifre, la stringa viene riempita con zeri.

Il numero totale di cifre restituite da _fcvt 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 dal segno dopo la chiamata. Il parametro dec punta a un valore intero. Questo valore intero 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 numero intero che indica il segno di value. L'intero viene impostato su 0 se value è positivo e viene impostato su un numero diverso da zero se value è 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 funzioni 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 EINVALe NULL viene restituito .

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
_fcvt <stdlib.h>

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

Esempio

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

Vedi anche

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