std:: stof, std:: stod, std:: stold
|
Défini dans l'en-tête
<string>
|
||
|
float
stof
(
const
std::
string
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(1) | (depuis C++11) |
|
float
stof
(
const
std::
wstring
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(2) | (depuis C++11) |
|
double
stod
(
const
std::
string
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(3) | (depuis C++11) |
|
double
stod
(
const
std::
wstring
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(4) | (depuis C++11) |
|
long
double
stold
(
const
std::
string
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(5) | (depuis C++11) |
|
long
double
stold
(
const
std::
wstring
&
str,
std::
size_t
*
pos
=
nullptr
)
;
|
(6) | (depuis C++11) |
Interprète une valeur à virgule flottante dans une chaîne str .
Soit ptr un pointeur interne (aux fonctions de conversion) de type char * (1,3,5) ou wchar_t * (2,4,6) , en conséquence.
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)
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 )
- expression en virgule flottante hexadécimale. Elle se compose des parties suivantes :
-
- (optionnel) signe plus ou moins
-
0xou0X - séquence non vide de chiffres hexadécimaux contenant optionnellement un caractère de point décimal (tel que déterminé par la locale C actuelle) (définit la mantisse)
-
(optionnel)
pouPsuivi 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
-
INFouINFINITYen ignorant la casse
- expression non numérique. Elle se compose des parties suivantes :
-
- (optionnel) signe plus ou moins
-
NANouNAN(char_sequence )en ignorant la casse de la partieNAN. char_sequence ne peut contenir que des chiffres, des lettres latines et des tirets bas. Le résultat est une valeur flottante NaN silencieuse.
- toute autre expression qui peut être acceptée par la locale C actuellement installée locale .
Si pos n'est pas un pointeur nul, alors ptr recevra l'adresse du premier caractère non converti dans str. c_str ( ) , et l'indice de ce caractère sera calculé et stocké dans * pos , donnant le nombre de caractères traités par la conversion.
Table des matières |
Paramètres
| str | - | la chaîne à convertir |
| pos | - | adresse d'un entier pour stocker le nombre de caractères traités |
Valeur de retour
La chaîne convertie en type à virgule flottante spécifié.
Exceptions
std::invalid_argument si aucune conversion n'a pu être effectuée.
std::out_of_range si la valeur convertie sortirait de la plage du type de résultat ou si la fonction sous-jacente ( std::strtof , std::strtod ou std::strtold ) définit errno à ERANGE .
Exemple
|
Cette section est incomplète
Raison : aucun exemple |
Rapports de défauts
Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.
| DR | Appliqué à | Comportement publié | Comportement corrigé |
|---|---|---|---|
| LWG 2009 | C++11 |
std::out_of_range
ne serait pas levée si la valeur convertie
sortirait de la plage du type de résultat |
lèvera |
| LWG 2403 | C++11 |
stof
appelait
std::strtod
ou
std::wcstod
|
stof
appelle
std::strtof
ou
std::wcstof
|
Voir aussi
|
(C++11)
(C++11)
(C++11)
|
convertit une chaîne en entier signé
(fonction) |
|
(C++11)
(C++11)
|
convertit une chaîne en entier non signé
(fonction) |
|
(C++17)
|
convertit une séquence de caractères en valeur entière ou à virgule flottante
(fonction) |