Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::stof,std::stod,std::stold

      From cppreference.com
      <cpp‎ |string‎ |basic string
       
       
       
      std::basic_string
       
      Defined in header<string>
      float       stof(conststd::string& str,std::size_t* pos= nullptr);
      (1)(since C++11)
      float       stof(conststd::wstring& str,std::size_t* pos= nullptr);
      (2)(since C++11)
      double      stod(conststd::string& str,std::size_t* pos= nullptr);
      (3)(since C++11)
      double      stod(conststd::wstring& str,std::size_t* pos= nullptr);
      (4)(since C++11)
      longdouble stold(conststd::string& str,std::size_t* pos= nullptr);
      (5)(since C++11)
      longdouble stold(conststd::wstring& str,std::size_t* pos= nullptr);
      (6)(since C++11)

      Interprets a floating point value in a stringstr.

      Letptr be an internal (to the conversion functions) pointer of typechar*(1,3,5) orwchar_t*(2,4,6), accordingly.

      1) Callsstd::strtof(str.c_str(),&ptr).
      2) Callsstd::wcstof(str.c_str(),&ptr).
      3) Callsstd::strtod(str.c_str(),&ptr).
      4) Callsstd::wcstod(str.c_str(),&ptr).
      5) Callsstd::strtold(str.c_str(),&ptr).
      6) Callsstd::wcstold(str.c_str(),&ptr).

      Function discards any whitespace characters (as determined bystd::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 Clocale) (defines significand)
      • (optional)e orE followed with optional minus or plus sign and nonempty sequence of decimal digits (defines exponent to base10)
      • hexadecimal floating-point expression. It consists of the following parts:
      • (optional) plus or minus sign
      • 0x or0X
      • nonempty sequence of hexadecimal digits optionally containing a decimal-point character (as determined by the current Clocale) (defines significand)
      • (optional)p orP followed with optional minus or plus sign and nonempty sequence of decimal digits (defines exponent to base2)
      • infinity expression. It consists of the following parts:
      • (optional) plus or minus sign
      • INF orINFINITY ignoring case
      • not-a-number expression. It consists of the following parts:
      • (optional) plus or minus sign
      • NAN orNAN(char_sequence ) ignoring case of theNAN 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 Clocale.

      Ifpos is not a null pointer, thenptr will receive the address of the first unconverted character instr.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.

      Contents

      [edit]Parameters

      str - the string to convert
      pos - address of an integer to store the number of characters processed

      [edit]Return value

      The string converted to the specified floating point type.

      [edit]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 orstd::strtold) setserrno toERANGE.

      [edit]Example

      This section is incomplete
      Reason: no example

      [edit]Defect reports

      The following behavior-changing defect reports were applied retroactively to previously published C++ standards.

      DRApplied toBehavior as publishedCorrect behavior
      LWG 2009C++11std::out_of_range would not be thrown if the converted
      value would fall out of the range of the result type
      will throw
      LWG 2403C++11stof calledstd::strtod orstd::wcstodstof callsstd::strtof orstd::wcstof

      [edit]See also

      (C++11)(C++11)(C++11)
      converts a string to a signed integer
      (function)[edit]
      (C++11)(C++11)
      converts a string to an unsigned integer
      (function)[edit]
      (C++17)
      converts a character sequence to an integer or floating-point value
      (function)[edit]
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/string/basic_string/stof&oldid=156402"

      [8]ページ先頭

      ©2009-2025 Movatter.jp