C语言中如何将字符串转换成float和double类型
先贴上可编译运行的源代码:
file: a.cpp
#include <stdio.h>
#include <stdlib.h>
int main ()
{
char szOrbits[] ="365.24";
char* pEnd;
float f1;
f1 = strtof (szOrbits, &pEnd);
printf("%f\n",f1);
return 0;
}
执行结果:
[tuxedo@imorcl yali_test]$ g++ a.cpp -o aaa
[tuxedo@imorcl yali_test]$ ./aaa
365.239990
man参考手册:在linux上 man strtod就能显示
NAME
strtod, strtof, strtold - convert ASCII string to floating point number
SYNOPSIS
#include <stdlib.h>
double strtod(const char *nptr, char **endptr);
#define _XOPEN_SOURCE=600 /* or #define _ISOC99_SOURCE */
#include <stdlib.h>
float strtof(const char *nptr, char **endptr);
long double strtold(const char *nptr, char **endptr);
DESCRIPTION
The strtod(), strtof(), and strtold() functions convert the initial portion of the string pointed to by nptr to double, float, and
long double representation, respectively.
。。。
推荐阅读:
C++ 隐式类类型转化 Implicit Class-Type Conversions
《C语言从入门到精通》.(王娣,韩旭 ).[PDF] + DVD视频光盘文件