atof
|
Défini dans l'en-tête
<stdlib.h>
|
||
|
double
atof
(
const
char
*
str
)
;
|
||
Interprète une valeur à virgule flottante dans la chaîne d'octets pointée par str .
La fonction ignore tous les caractères d'espacement (tels que déterminés par isspace ) jusqu'à ce que le premier caractère non-espace soit trouvé. Ensuite, elle prend autant de caractères que possible pour former une représentation valide en virgule flottante et les convertit en une valeur flottante. La valeur flottante valide peut être l'une des suivantes :
- expression décimale en virgule flottante. Elle se compose des parties suivantes :
-
- (optionnel) signe plus ou moins
- séquence non vide de chiffres décimaux contenant éventuellement un caractère de séparation décimale (tel que déterminé par la locale C actuelle) (définit la mantisse)
-
(optionnel)
eouEsuivi d'un signe moins ou plus optionnel et d'une séquence non vide de chiffres décimaux (définit l'exposant en base 10 )
|
(depuis C99) |
- toute autre expression qui peut être acceptée par la locale C actuellement installée locale .
Table des matières |
Paramètres
| str | - | pointeur vers la chaîne d'octets terminée par un caractère nul à interpréter |
Valeur de retour
double valeur correspondant au contenu de str en cas de succès. Si la valeur convertie dépasse la plage du type de retour, la valeur de retour est indéfinie. Si aucune conversion ne peut être effectuée, 0.0 est retourné.
Notes
Le nom signifie « ASCII to float ».
Exemple
#include <stdio.h> #include <stdlib.h> int main(void) { printf("%g\n", atof(" -0.0000000123junk")); printf("%g\n", atof("0.012")); printf("%g\n", atof("15e16")); printf("%g\n", atof("-0x1afp-2")); printf("%g\n", atof("inF")); printf("%g\n", atof("Nan")); printf("%g\n", atof("1.0e+309")); // UB: hors de la plage du double printf("%g\n", atof("0.0")); printf("%g\n", atof("junk")); // aucune conversion ne peut être effectuée }
Sortie possible :
-1.23e-08 0.012 1.5e+17 -107.75 inf nan inf 0 0
Références
- Norme C23 (ISO/IEC 9899:2024):
-
- 7.22.1.1 La fonction atof (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.22.1.1 La fonction atof (p: TBD)
- Norme C11 (ISO/CEI 9899:2011) :
-
- 7.22.1.1 La fonction atof (p: 341)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.20.1.1 La fonction atof (p: 307)
- Norme C89/C90 (ISO/IEC 9899:1990) :
-
- 4.10.1.1 La fonction atof
Voir aussi
|
(C99)
(C99)
|
convertit une chaîne d'octets en une valeur à virgule flottante
(fonction) |
|
Documentation C++
pour
atof
|
|