📅  最后修改于: 2023-12-03 15:29:41.709000             🧑  作者: Mango
wcstod()
函数是一种用于将字符串转换为浮点数的标准库函数,它的功能与strtod()
函数类似,但是可处理Unicode字符。
double wcstod(const wchar_t* wcs, wchar_t** endptr);
wcstod()
函数接受一个表示浮点数的字符串和一个指向字符指针的指针参数,返回浮点数的值。如果转换成功,则将endptr
指向转换后第一个未转换的字符的地址,否则不更新指针值。
wcs
:需要被转换为浮点数的字符串,它是一个宽字符字符串。endptr
:指向一个指针的指针,它指向的变量将指向科学计数法或十进制标志字符串中的第一个非转义字符。如果转换成功,则返回所得到的浮点数值。如果目标字符串无法解释为浮点数,则此函数返回0.0。
#include <wchar.h>
#include <stdio.h>
int main() {
wchar_t* str = L"10.5";
wchar_t* end;
double num = wcstod(str, &end);
wprintf(L"num = %lf\n", num);
wprintf(L"endptr = %ls\n", end);
return 0;
}
运行结果:
num = 10.500000
endptr =
wcstod()
函数是线程安全的,但是需要自己管理指针空间,不然会产生内存泄漏问题。wcs
字符串必须是以可转换为浮点数的数值开始的。wcs
不包含数值,则返回NaN("不是数字")表示的浮点值。endptr
可以为nullptr
,这样就不会返回不必要的指针。