table of contents
        
      
      
    | std::stof,std::stod,std::stold(3) | C++ Standard Libary | std::stof,std::stod,std::stold(3) | 
NAME¶
std::stof,std::stod,std::stold - std::stof,std::stod,std::stold
Synopsis¶
 Defined in header <string>
  
   float stof ( const std::string& str, std::size_t* pos = (1)
    (since C++11)
  
   nullptr );
  
   float stof ( const std::wstring& str, std::size_t* pos = (2)
    (since C++11)
  
   nullptr );
  
   double stod ( const std::string& str, std::size_t* pos = (3)
    (since C++11)
  
   nullptr );
  
   double stod ( const std::wstring& str, std::size_t* pos = (4)
    (since C++11)
  
   nullptr );
  
   long double stold( const std::string& str, std::size_t* pos = (5)
    (since C++11)
  
   nullptr );
  
   long double stold( const std::wstring& str, std::size_t* pos = (6)
    (since C++11)
  
   nullptr );
  
   Interprets a floating point value in a string str.
  
   Let ptr be an internal (to the conversion functions) pointer of type char*
    (1,3,5)
  
   or wchar_t* (2,4,6), accordingly.
  
   1) Calls std::strtof(str.c_str(), &ptr).
  
   2) Calls std::wcstof(str.c_str(), &ptr).
  
   3) Calls std::strtod(str.c_str(), &ptr).
  
   4) Calls std::wcstod(str.c_str(), &ptr).
  
   5) Calls std::strtold(str.c_str(), &ptr).
  
   6) Calls std::wcstold(str.c_str(), &ptr).
  
   Function discards any whitespace characters (as determined by std::isspace)
    until
  
   first non-whitespace character is found. Then it takes as many characters as
  
   possible to form a valid floating-point representation and converts them to a
  
   floating-point value. The valid floating-point value can be one of the
    following:
  
   * decimal floating-point expression. It consists of the following parts:
  
   * (optional) plus or minus sign
  
   * nonempty sequence of decimal digits optionally containing decimal-point
  
   character (as determined by the current C locale) (defines significand)
  
   * (optional) e or E followed with optional minus or plus sign and nonempty
  
   sequence of decimal digits (defines exponent to base 10)
  
   * hexadecimal floating-point expression. It consists of the following
  parts:
  
   * (optional) plus or minus sign
  
   * 0x or 0X
  
   * nonempty sequence of hexadecimal digits optionally containing a
    decimal-point
  
   character (as determined by the current C locale) (defines significand)
  
   * (optional) p or P followed with optional minus or plus sign and nonempty
  
   sequence of decimal digits (defines exponent to base 2)
  
   * infinity expression. It consists of the following parts:
  
   * (optional) plus or minus sign
  
   * INF or INFINITY ignoring case
  
   * not-a-number expression. It consists of the following parts:
  
   * (optional) plus or minus sign
  
   * NAN or NAN(char_sequence) ignoring case of the NAN part. char_sequence can
    only
  
   contain digits, Latin letters, and underscores. The result is a quiet NaN
  
   floating-point value.
  
   * any other expression that may be accepted by the currently installed C
    locale
  
   If pos is not a null pointer, then ptr will receive the address of the first
  
   unconverted character in str.c_str(), and the index of that character will be
  
   calculated and stored in *pos, giving the number of characters that were
    processed
  
   by the conversion.
Parameters¶
 str - the string to convert
  
   pos - address of an integer to store the number of characters processed
Return value¶
The string converted to the specified floating point type.
Exceptions¶
std::invalid_argument if no conversion could be performed.
  
   std::out_of_range if the converted value would fall out of the range of the
    result
  
   type or if the underlying function (std::strtof, std::strtod or std::strtold)
    sets
  
   errno to ERANGE.
Example¶
 This section is incomplete
  
   Reason: no example
  
   Defect reports
  
   The following behavior-changing defect reports were applied retroactively to
  
   previously published C++ standards.
  
   DR Applied to Behavior as published Correct behavior
  
   std::out_of_range would not be thrown
  
   LWG 2009 C++11 if the converted will throw
  
   value would fall out of the range of
  
   the result type
  
   LWG 2403 C++11 stof called std::strtod or std::wcstod stof calls std::strtof
    or
  
   std::wcstof
See also¶
 stoi
  
   stol
  
   stoll converts a string to a signed integer
  
   (C++11) (function)
  
   (C++11)
  
   (C++11)
  
   stoul
  
   stoull converts a string to an unsigned integer
  
   (C++11) (function)
  
   (C++11)
  
   from_chars converts a character sequence to an integer or floating-point
    value
  
   (C++17) (function)
Category:¶
* Todo no example
| 2024.06.10 | http://cppreference.com |