函数
<cwchar>

wcstof

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

这是 strtof (<cstdlib>) 的宽字符等效版本,以相同的方式解释 str

参数

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

返回值

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

示例

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

int main ()
{
  wchar_t szOrbits[] = L"686.97 365.24";
  wchar_t * pEnd;
  double d1, d2;
  d1 = wcstof (szOrbits,&pEnd);
  d2 = wcstof (pEnd,NULL);
  wprintf (L"One martian year takes %.2f Earth years.\n", d1/d2);
  return 0;
}

输出
One martian year takes 1.88 Earth years.


另见