Partager via


strtof, _strtof_l, wcstof, _wcstof_l

Convertit les chaînes en valeur à virgule flottante simple précision.

Syntaxe

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

Paramètres

strSource
Chaîne se terminant par un caractère Null à convertir.

endptr
Pointeur désignant le caractère qui arrête l’analyse.

locale
Paramètres régionaux à utiliser.

Valeur retournée

strtof retourne la valeur du nombre à virgule flottante, sauf lorsque la représentation provoque un dépassement de capacité, auquel cas la fonction retourne +/-HUGE_VALF. Le signe HUGE_VALF correspond au signe de la valeur qui ne peut pas être représentée. strtof retourne 0 si aucune conversion ne peut être effectuée ou en cas de dépassement de capacité négatif.

wcstof retourne des valeurs de façon analogue à strtof. Pour les deux fonctions, errno la valeur est définie ERANGE si le dépassement de capacité ou le sous-flux se produit et que le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres.

Pour plus d’informations sur les codes de retour, consultez , , _sys_errlist_doserrnoet _sys_nerr.errno

Notes

Chaque fonction convertit la chaîne d’entrée strSource en float. La fonction strtof convertit strSource en valeur simple précision. strtof arrête la lecture de la chaîne strSource au premier caractère qu’elle ne peut pas reconnaître dans le cadre d’un nombre. Ce caractère peut être le caractère null de fin. wcstof est une version à caractères larges de strtof ; son argument strSource est une chaîne de caractères larges. Sinon, ces fonctions se comportent de façon identique.

Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.

Mappages de routine de texte générique

Routine TCHAR.H _UNICODE et _MBCS non défini _MBCS Défini _UNICODE Défini
_tcstof strtof strtof wcstof
_tcstof_l _strtof_l _strtof_l _wcstof_l

Le LC_NUMERIC paramètre de catégorie des paramètres régionaux actuels détermine la reconnaissance du caractère radix dans strSource; pour plus d’informations, voir setlocale, _wsetlocale. Les fonctions sans suffixe _l utilisent les paramètres régionaux actifs ; celles qui ont le suffixe sont identiques, sauf qu’elles utilisent à la place les paramètres régionaux transmis. Pour plus d’informations, consultez Locale.

Si endptr ce n’est pas NULLle cas, un pointeur vers le caractère qui a arrêté l’analyse est stocké à l’emplacement vers lequel pointe endptr. Si aucune conversion ne peut être effectuée (aucun chiffre valide n’a été trouvé ou la base spécifiée n’était pas valide), la valeur de strSource est stockée à l’emplacement désigné par endptr.

strtof s’attend à ce que strSource pointe vers une chaîne au format suivant :

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

Un whitespace peut se composer d’espaces et de tabulations, qui sont ignorés ; sign est un signe plus (+) ou moins (-) ; et digits représente un ou plusieurs chiffres décimaux. Si aucun chiffre n’apparaît avant le caractère de base, il doit en figurer au moins un après le caractère de base. Les chiffres décimaux peuvent être suivis d’un exposant, qui se compose d’une lettre d’introduction (e ou E) et éventuellement d’un entier signé. Si aucune partie exposante ou caractère radix n’apparaît, un caractère radix est supposé suivre le dernier chiffre de la chaîne. Le premier caractère qui ne correspond pas à ce formulaire arrête l’analyse.

Les versions UCRT de ces fonctions ne prennent pas en charge la conversion de lettres exposantes (d ou D) de style Fortran. Cette extension non standard était prise en charge par les versions antérieures de la bibliothèque CRT et peut être une modification avec rupture pour votre code.

Spécifications

Routine En-tête requis
strtof, _strtof_l C : <stdlib.h> C++ : <cstdlib> ou <stdlib.h>
wcstof, _wcstof_l C : <stdlib.h> ou <wchar.h> C++ : <cstdlib, <stdlib.h>> ou <wchar.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Exemple

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

Voir aussi

Conversion de données
Prise en charge mathématique et à virgule flottante
Interprétation des séquences de caractères multioctets
Paramètres régionaux
Chaîne à fonctions de valeur numérique
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