wcstold |
| ||||
wcstold | |
ヘッダ | #include <wchar.h> |
形 式 | long double wcstold(const wchar_t * restrict nptr, wchar_t ** restrict endptr); |
機 能 | nptrが指すワイド文字列の最初の部分を、long double型の表現に変換する。 まず始めに、入力文字列を次の三つの部分に分割する。 第1の部分 … iswspace関数の規定による空白類ワイド文字の並び(空でもよい)。 第2の部分 … 浮動小数点定数と同様の形式、あるいは、無限大またはNaNを表現する変換対象列。 第3の部分 … 認識の対象とならないワイド文字の1文字以上の末尾のワイド文字列(入力ワイド文字列の終了を示すナルワイド文字を含む) 次に、変換対象列の部分を浮動小数点数に変換し、その結果を返す。 変換対象列の認識可能な形式は、省略可能な正符号または負符号に、次のいずれか一つが続く形式である。
変換対象列が浮動小数点数として認識可能な形式であるとき、最初の数字または小数点ワイド文字(のどちらか最初に現れた方)で始まるワイド文字の並びを浮動小数点定数として解釈する。ただし、以下を除外する。
ワイド文字の並びINFおよびINFINITYは、long double型で表現可能である場合、無限大と解釈する。そうでない場合、返却値の型の範囲を超えて大きい浮動小数点定数と同じ規則の動作とする。ワイド文字の並びNANおよびNAN(n文字列opt)は、返却値の型でサポートしている場合、qNaNと解釈する。そうでない場合、long double型の範囲を超えて大きい浮動小数点定数と同じ規則の動作とする。 ワイド文字の並びNANおよびNAN(nワイド文字列opt)は、返却値の型でサポートしている場合、qNaNと解釈する。そうでない場合、変換対象列が認識可能な形式をもたない場合と同じ規則の動作とする。nワイド文字列の意味は、処理系定義とする。endptrが空ポインタでなければ、nptrの値をendptrが指すオブジェクトに格納する。 変換対象列が16進形式であり、FLT_RADIXが2のべき乗の場合、変換結果の値は、正しく丸められる。 "C"ロケール以外では、付加的に文化圏固有の変換対象列の形式を受理してもよい。変換対象列が空であるか、または、認識可能な形式でないとき、変換は行わない。このとき、endptrが空ポインタでなければ、nptrの値をendptrが指すオブジェクトに格納する。
|
返却値 | 変換が可能であれば変換した値を返し、不可能であれば0を返す。正しい値が表現可能な値の範囲外であるとき、(値の符号に従って)正または負のHUGE_VALFを返し、errnoにはマクロERANGEの値を格納する。正しい値がアンダフローを起こすときは、long double型で最も小さな正規化された正の数以下の絶対値をもつ値を返す。この場合、errnoに値ERANGEを格納するかどうかは処理系定義とする。 |
補 足 |
|