wcstold (Strings) - C 中文开发手册
| 在头文件<wchar.h>中定义 | ? | ? |
|---|---|---|
| float wcstof(const wchar_t * str,wchar_t ** str_end); | ? | (自C99以来) |
| double wcstod(const wchar_t * str,wchar_t ** str_end); | ? | (自C95以来) |
| long double wcstold(const wchar_t * str,wchar_t ** str_end); | ? | (自C99以来) |
解释由指向的宽字符串中的浮点值str。函数放弃任何空白字符(由其决定std::isspace()),直到找到第一个非空白字符。然后,它需要尽可能多的字符来形成有效的浮点表示并将它们转换为浮点值。有效的浮点值可以是以下值之一:十进制浮点表达式。它由以下部分组成:(可选)加号或减号 非空十进制数字序列可选地包含小数点字符(由当前C确定locale)(定义有效数字)(可选),e或者E跟随可选的负号或加号和非空序列的十进制数字(定义指数)二进制浮点表达式。它由以下部分组成:(可选)加号或减号 0x 要么 0X 非空的十六进制数字序列可选地包含小数点字符(由当前C确定locale)(定义有效数字)(可选),p或者P跟随可选的负号或加号和非空序列的十进制数字(定义指数)无限表达。它由以下部分组成:(可选)加号或减号 INF或者INFINITY无视案件非数字表达式。它由以下部分组成:(可选)加号或减号 NAN或NAN(char_sequence)忽略该NAN部分的情况。char_sequence只能包含字母数字字符。结果是安静的NaN浮点值。任何其他可能被当前安装的C接受的表达式 locale 这些函数将指向的指针设置为指向str_end最后解释的字符后面的宽字符。如果str_end是NULL,它被忽略。
| str | - | 指向要解释的以空字符结尾的宽字符串的指针 |
|---|---|---|
| str_end | - | 指向宽字符的指针。 |
对应str于成功内容的浮点值。如果转换后的值脱离的相应返回类型的范围时,发生和范围错误HUGE_VAL,HUGE_VALF或HUGE_VALL返回。如果不能执行转换,则返回?0?。
#include <stdio.h>
#include <errno.h>
#include <wchar.h>
int main(void)
{
const wchar_t *p = L"111.11 -2.22 0X1.BC70A3D70A3D7P+6 1.18973e+4932zzz";
printf("Parsing L\"%ls\":\n", p);
wchar_t *end;
for (double f = wcstod(p, &end); p != end; f = wcstod(p, &end))
{
printf("‘%.*ls‘ -> ", (int)(end-p), p);
p = end;
if (errno == ERANGE){
printf("range error, got ");
errno = 0;
}
printf("%f\n", f);
}
}
输出:
Parsing L"111.11 -2.22 0X1.BC70A3D70A3D7P+6 1.18973e+4932zzz": ‘111.11‘ -> 111.110000 ‘ -2.22‘ -> -2.220000 ‘ 0X1.BC70A3D70A3D7P+6‘ -> 111.110000 ‘ 1.18973e+4932‘ -> range error, got inf
C11标准(ISO/IEC 9899:2011): 7.29.4.1.1 wcstod,wcstof和wcstold函数(p: 426-428) C99标准(ISO/IEC 9899:1999): 7.24.4.1.1 wcstod,wcstof和wcstold函数(p: 372-374)
| strtofstrtodstrtold(C99)(C99) | 将字节字符串转换为浮点值(函数) |
|---|
| wcstof,wcstod,wcstold |的C ++文档
??C 语言中文开发手册原文:https://www.cnblogs.com/breakyizhan/p/13238200.html