Movatterモバイル変換


[0]ホーム

URL:


cppreference.com
Namespaces
Variants
    Actions

      std::wcstof,std::wcstod,std::wcstold

      From cppreference.com
      <cpp‎ |string‎ |wide
       
       
       
       
      Defined in header<cwchar>
      float       wcstof(constwchar_t* str,wchar_t** str_end);
      (since C++11)
      double      wcstod(constwchar_t* str,wchar_t** str_end);
      longdouble wcstold(constwchar_t* str,wchar_t** str_end);
      (since C++11)

      Interprets a floating point value in a wide string pointed to bystr.

      Function discards any whitespace characters (as determined bystd::iswspace) 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.
      (since C++11)
      • any other expression that may be accepted by the currently installed Clocale.

      The functions sets the pointer pointed to bystr_end to point to the wide character past the last character interpreted. Ifstr_end is a null pointer, it is ignored.

      Contents

      [edit]Parameters

      str - pointer to the null-terminated wide string to be interpreted
      str_end - pointer to a pointer to a wide character

      [edit]Return value

      Floating point value corresponding to the contents ofstr on success. If the converted value falls out of range of corresponding return type, range error occurs andHUGE_VAL,HUGE_VALF orHUGE_VALL is returned. If no conversion can be performed,0 is returned.

      [edit]Example

      Run this code
      #include <cerrno>#include <clocale>#include <cwchar>#include <iostream>#include <string> int main(){constwchar_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';}}

      Output:

      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 infWith de_DE.utf8 locale:  '123.45' -> 123  '123,45' -> 123.45

      [edit]See also

      converts a byte string to a floating-point value
      (function)[edit]
      C documentation forwcstof
      Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/string/wide/wcstof&oldid=153119"

      [8]ページ先頭

      ©2009-2025 Movatter.jp