怎么把科学计数法字符串转换成浮点类型
1个回答
展开全部
可以使用库函数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;
}
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;
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询