namespace std {
long double wcstold(const wchar_t* nptr, wchar_t** endptr);
}
概要
ワイド文字列nptrをlong double型の浮動小数点数に変換する。
解釈の規則は、マルチバイト文字列版のstd::strtold()と同じであり、10進数の浮動小数点数のほか、0xで始まる16進浮動小数点数、INF、NANを解釈できる。
戻り値
- 変換可能ならば変換後の数値を返す
- 変換後の数値の絶対値が大きすぎて表現できない場合、
HUGE_VAL系の値を返し、errnoにERANGEを設定する - 変換不可能ならば
0を返す
備考
- 小数点を表す文字は、現在のCロケールに依存する
例
#include <cwchar>
#include <iostream>
int main()
{
wchar_t* end = nullptr;
long double a = std::wcstold(L"3.14abc", &end);
std::wcout << static_cast<double>(a) << std::endl;
std::wcout << end << std::endl;
}
出力
3.14
abc
バージョン
言語
- C++11
処理系
- Clang: 3.4 ✅
- GCC: 4.7.1 ✅
- Visual C++: 2019 ✅
関連項目
wcstodwcstofstd::strtold(): マルチバイト文字列版