std:: wcstof, std:: wcstod, std:: wcstold
| 
           
           Défini dans l'en-tête
            
         
            
             <cwchar>
            
           
           | 
         ||
| 
           
           
            
             float
            
            wcstof
            
             (
            
            
             const
            
            
             wchar_t
            
            
             *
            
            str,
            
             wchar_t
            
            
             **
            
            str_end
            
             )
            
            
             ;
            
           
           
          | 
         (depuis C++11) | |
| 
           
           
            
             double
            
            wcstod
            
             (
            
            
             const
            
            
             wchar_t
            
            
             *
            
            str,
            
             wchar_t
            
            
             **
            
            str_end
            
             )
            
            
             ;
            
           
           
          | 
         ||
| 
           
           
            
             long
            
            
             double
            
            wcstold
            
             (
            
            
             const
            
            
             wchar_t
            
            
             *
            
            str,
            
             wchar_t
            
            
             **
            
            str_end
            
             )
            
            
             ;
            
           
           
          | 
         (depuis C++11) | |
Interprète une valeur à virgule flottante dans la chaîne large pointée par str .
La fonction ignore tous les caractères d'espacement (tels que déterminés par std::iswspace ) 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 numérique. La valeur valide en virgule flottante 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 ) 
 
         
 
 
 
 
 
  | 
        (depuis C++11) | 
- toute autre expression pouvant être acceptée par la locale C actuellement installée locale .
 
Les fonctions définissent le pointeur pointé par str_end pour pointer vers le caractère large après le dernier caractère interprété. Si str_end est un pointeur nul, il est ignoré.
         Table des matières | 
       
Paramètres
| str | - | pointeur vers la chaîne large terminée par un caractère nul à interpréter | 
| str_end | - | pointeur vers un pointeur vers un caractère large | 
Valeur de retour
Valeur à virgule flottante correspondant au contenu de str en cas de succès. Si la valeur convertie dépasse la plage du type de retour correspondant, une erreur de plage se produit et HUGE_VAL , HUGE_VALF ou HUGE_VALL est retourné. Si aucune conversion ne peut être effectuée,  0  est retourné.
Exemple
#include <cerrno> #include <clocale> #include <cwchar> #include <iostream> #include <string> int main() { const wchar_t* p = L"111.11 -2.22 0X1.BC70A3D70A3D7P+6 -Inf 1.18973e+4932zzz"; wchar_t* end; std::wcout << "Parsing L\"" << p << "\":\n"; for (double f = std::wcstod(p, &end); p != end; f = std::wcstod(p, &end)) { std::wcout << " '" << std::wstring(p, end-p) << "' -> "; p = end; if (errno == ERANGE) { std::wcout << "range error, got "; errno = 0; } std::wcout << f << '\n'; } if (std::setlocale(LC_NUMERIC, "de_DE.utf8")) { std::wcout << L"With de_DE.utf8 locale:\n"; std::wcout << L" '123.45' -> " << std::wcstod(L"123.45", 0) << L'\n'; std::wcout << L" '123,45' -> " << std::wcstod(L"123,45", 0) << L'\n'; } }
Sortie :
Parsing L"111.11 -2.22 0X1.BC70A3D70A3D7P+6 -Inf 1.18973e+4932zzz": '111.11' -> 111.11 ' -2.22' -> -2.22 ' 0X1.BC70A3D70A3D7P+6' -> 111.11 ' -Inf' -> -inf ' 1.18973e+4932' -> range error, got inf With de_DE.utf8 locale: '123.45' -> 123 '123,45' -> 123.45
Voir aussi
| 
         convertit une chaîne d'octets en une valeur à virgule flottante
          (fonction)  | 
       |
| 
          
          
           
            Documentation C
           
          
          pour
          
           
            wcstof
           
          
          
         | 
       |