strtof, _strtof_l, wcstof, _wcstof_l

Converte le stringhe in un valore a virgola mobile e precisione singola.

Sintassi

float strtof(
   const char *strSource,
   char **endptr
);
float _strtof_l(
   const char *strSource,
   char **endptr,
   _locale_t locale
);
float wcstof(
   const wchar_t *strSource,
   wchar_t **endptr
);
float wcstof_l(
   const wchar_t *strSource,
   wchar_t **endptr,
   _locale_t locale
);

Parametri

strSource
Stringa con terminazione Null da convertire.

endptr
Puntatore al carattere che interrompe la lettura.

locale
Impostazioni locali da usare.

Valore restituito

strtof restituisce il valore del numero a virgola mobile, tranne quando la rappresentazione provocherebbe un overflow, nel qual caso la funzione restituisce +/-HUGE_VALF. Il segno di HUGE_VALF corrisponde al segno del valore che non può essere rappresentato. strtof restituisce 0 se è non possibile eseguire alcuna conversione oppure se si verifica un overflow.

wcstof restituisce i valori in modo analogo a strtof. Per entrambe le funzioni, errno è impostato su ERANGE se si verifica l'overflow o l'underflow e viene richiamato il gestore di parametri non validi, come descritto in Convalida dei parametri.

Per altre informazioni sui codici restituiti, vedere errno, _doserrno, _sys_errliste _sys_nerr.

Osservazioni:

Ogni funzione converte la stringa di input strSource in un valore float. La funzione strtof converte strSource in un valore a precisione singola. strtof interrompe la lettura della stringa strSource al primo carattere che non è in grado di riconoscere come parte di un numero. Questo carattere può essere il carattere Null di terminazione. wcstof è una versione a caratteri wide di strtof. L'argomento strSource è una stringa di caratteri wide. In caso contrario, il comportamento di queste funzioni è identico.

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

Mapping di routine di testo generico

Routine TCHAR.H _UNICODE e _MBCS non definito _MBCS Definito _UNICODE Definito
_tcstof strtof strtof wcstof
_tcstof_l _strtof_l _strtof_l _wcstof_l

L'impostazione LC_NUMERIC di categoria delle impostazioni locali correnti determina il riconoscimento del carattere radix in strSource. Per altre informazioni, vedere setlocale, _wsetlocale. Le funzioni senza il suffisso _l usano le impostazioni locali correnti. Le versioni con il suffisso sono identiche, ma usano le impostazioni locali passate. Per altre informazioni, vedere Locale.

Se endptr non NULLè , un puntatore al carattere che ha arrestato l'analisi viene archiviato nella posizione a endptrcui punta . Se è non possibile eseguire alcuna conversione (non vengono trovate cifre valide o viene specificata una base non valida), il valore di strSource viene archiviato in corrispondenza della posizione a cui punta endptr.

strtof prevede che strSource punti a una stringa nel formato seguente:

[whitespace] [sign] [digits] [.digits] [{e | E} [sign] digits]

whitespace può essere costituito da caratteri di spazio e tabulazione, che vengono ignorati. sign è più (+) o meno (-) e digits indica una o più cifre decimali. Se non viene visualizzata alcuna cifra prima del carattere di base, deve essercene almeno una dopo il carattere di base. Le cifre decimali possono essere seguite da un esponente, costituito da una lettera introduttiva (e o E) e un intero con segno facoltativo. Se non viene visualizzato alcun carattere esponente o radix, si presuppone che un carattere radix segua l'ultima cifra nella stringa. Il primo carattere che non rientra in questo modulo interrompe l'analisi.

Le versioni UCRT di queste funzioni non supportano la conversione di lettere esponenti di tipo Fortran (d o D). Questa estensione non standard è supportata dalle versioni precedenti della libreria CRT e può rappresentare una modifica con impatto significativo per il codice esistente.

Requisiti

Ciclo Intestazione obbligatoria
strtof, _strtof_l C: <stdlib.h> C++: <cstdlib> o <stdlib.h>
wcstof, _wcstof_l C: <stdlib.h> o <wchar.h> C++: <cstdlib>, <stdlib.h> o <wchar.h>

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

Esempio

// crt_strtof.c
// This program uses strtof to convert a
// string to a single-precision value.

#include <stdlib.h>
#include <stdio.h>

int main( void )
{
   char *string;
   char *stopstring;
   float x;

   string = "3.14159This stopped it";
   x = strtof(string, &stopstring);
   printf("string = %s\n", string);
   printf("   strtof = %f\n", x);
   printf("   Stopped scan at: %s\n\n", stopstring);
}
string = 3.14159This stopped it
   strtof = 3.141590
   Stopped scan at: This stopped it

Vedi anche

Conversione dei dati
Supporto matematico e a virgola mobile
Interpretazione di sequenze di caratteri multibyte
impostazioni locali
Funzioni string to numeric value (Da stringa a valore numerico)
strtod, _strtod_l, wcstod, _wcstod_l
strtol, wcstol, _strtol_l, _wcstol_l
strtoul, _strtoul_l, wcstoul, _wcstoul_l
atof, _atof_l, _wtof, _wtof_l
localeconv
_create_locale, _wcreate_locale
_free_locale