_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 è NULL
0, 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 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