函数
<cwchar>

wcstold

long double wcstold (const wchar_t* str, wchar_t** endptr);
将宽字符串转换为 long double
解析 C 宽字符串 str,将其内容解释为浮点数,并以long double类型返回其值。如果 endptr 不是空指针,则该函数还会将 endptr 的值设置为指向数字后面的第一个字符。

这是 strtold (<cstdlib>) 的宽字符等价函数,以相同方式解释 str

参数

str
以浮点数表示形式开头的 C 宽字符串。
endptr
对一个已分配的wchar_t*类型对象的引用,函数会将其值设置为 str 中数值部分之后的下一个字符。
该参数也可以是一个空指针,此时它将不被使用。

返回值

成功时,函数返回转换后的浮点数,类型为long double.
如果无法执行有效的转换,则函数返回零(0.0L).
如果正确的值超出了该类型可表示值的范围,则返回一个正或负的 HUGE_VALL,并将 errno 设置为 ERANGE
如果正确的值会导致下溢,则函数返回一个绝对值不大于最小规格化正数的数值(某些库的实现在这种情况下也可能将 errno 设置为 ERANGE)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
/* wcstold example */
#include <wchar.h>

int main ()
{
  wchar_t szOrbits[] = L"90613.305 365.24";
  wchar_t * pEnd;
  long double f1, f2;
  f1 = wcstold (szOrbits,&pEnd);
  f2 = wcstold (pEnd,NULL);
  wprintf (L"Pluto takes %.2Lf years to complete an orbit.\n", f1/f2);
  return 0;
}

输出
Pluto takes 248.09 years to complete an orbit.


另见