Namespaces
Variants

std:: atof

From cppreference.net
Défini dans l'en-tête <cstdlib>
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 std::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 optionnellement un caractère de séparation décimale (tel que déterminé par la locale C actuelle) (définit la mantisse)
  • (optionnel) e ou E suivi optionnellement d'un signe moins ou plus et d'une séquence non vide de chiffres décimaux (définit l'exposant en base 10 )
  • expression en virgule flottante hexadécimale. Elle se compose des parties suivantes :
  • (optionnel) signe plus ou moins
  • 0x ou 0X
  • séquence non vide de chiffres hexadécimaux contenant éventuellement un caractère de point décimal (tel que déterminé par la locale C actuelle) (définit la mantisse)
  • (optionnel) p ou P suivi d'un signe moins ou plus optionnel et d'une séquence non vide de chiffres décimaux (définit l'exposant en base 2 )
  • expression d'infini. Elle se compose des parties suivantes :
  • (optionnel) signe plus ou moins
  • INF ou INFINITY sans distinction de casse
  • expression NaN (not-a-number). Elle se compose des parties suivantes :
  • (optionnel) signe plus ou moins
  • NAN ou NAN( char_sequence  ) sans distinction de casse pour la partie NAN . char_sequence ne peut contenir que des chiffres, des lettres latines et des tirets bas. Le résultat est une valeur flottante NaN silencieuse.
(depuis C++11)
  • toute autre expression pouvant ê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é.

Exemple

#include <cstdlib>
#include <iostream>
int main()
{
    std::cout << std::atof("0.0000000123") << '\n'
              << std::atof("0.012") << '\n'
              << std::atof("15e16") << '\n'
              << std::atof("-0x1afp-2") << '\n'
              << std::atof("inF") << '\n'
              << std::atof("Nan") << '\n'
              << std::atof("invalid") << '\n';
}

Sortie :

1.23e-08
0.012
1.5e+17
-107.75
inf
nan
0

Voir aussi

(C++11) (C++11) (C++11)
convertit une chaîne en une valeur à virgule flottante
(fonction)
convertit une chaîne d'octets en une valeur à virgule flottante
(fonction)
(C++17)
convertit une séquence de caractères en une valeur entière ou à virgule flottante
(fonction)
convertit une chaîne d'octets en une valeur entière
(fonction)