C语言怎么能把字符串转化成浮点型数据?

比如字符串"123.345",如何将这个字符串转化成为浮点型数据?有没有此类的系统函数?……

使用atof函数。

一、描述:

C 库函数 double atof(const char *str) 把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。

二、atof() 函数的声明:

double atof(const char *str)。

三、参数:

str -- 要转换为浮点数的字符串。

四、返回值:

函数返回转换后的双精度浮点数,如果没有执行有效的转换,则返回零(0.0)。

实例演示代码:

编译执行效果如下:

扩展资料:

如果存在非法字符的,示例代码如下:

编译执行效果如下:

参考资料:

百度百科--atof

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-19

可以使用库函数atof。


1 函数名 atof

2 声明 

double atof(const char *nptr);

3 头文件

 #include <stdlib.h>

4 功能

将参数nptr中的字符串转为浮点型数据并返回。

5 需要注意的是,必须是合法的字符串,即以实数形式或者科学计数法形式存储的字符串才可以进行转换,否则转换会出错。 比如"sjdhk"这样的字符串是无法转换为浮点数的。而如果是"1.23sdf"这样的形式,只会处理到最后一个数字,结果为1.23。

5 示例代码

#include<stdlib.h>
int main()
{
char*a="-100.23";//实数形式存储的字符串 
char*b="200e-2";//科学计数法形式存储的字符串
double c;
c=atof(a)+atof(b);//转换后为 -100.23+200e-2=-100.23+2=-98.23
printf(“c=%.2lf\n”,c);//输出结果,保留2位小数。期望结果为c=-98.23
return 0;
}

输出结果

 c=-98.23

与期望结果相同。 

第2个回答  2013-05-21
有的有此类的系统函数,加上头文件#include <stdlib.h>,使用atof()函数就行了
相似回答