hur.cn - 华软网

 热门搜索

将字符串转化为科学计数法的数字

  作者:未知    来源:网络    更新时间:2011/8/13
读取txt中的数字,读取的为“-1.4780608e+001”,我如何将它转化为科学计数法的数字。字符串转化为浮点型用atof,这个有专门的函数吗?或者怎么转化?
---华软 网友回答---
哎,可怜的娃
---华软网友回复---
sscanf(pchar,_T("%e"),&f1);
pchar为字符串“-1.4780608e+001”,
f1为float型
---华软网友回复---
我试了一下好像不行啊,可以具体一点吗?
引用 2 楼 xiezonglin 的回复:
sscanf(pchar,_T("%e"),&f1);
pchar为字符串“-1.4780608e+001”,
f1为float型

---华软网友回复---
定义个函数来解决吧

double E_TO_F(char *p)
{
    double  r;  //结果
    int     e;  //指数
    int     i;  //循环用
    char   *str=p;
    if(str==NULL) 
       return 0.0;
    if(sscanf(str,"%fe+%3d",&r,&e)==0) 
       return 0.0;
    for(i=0;i<e;i++)
       r*=10.0;
    return r;
}

使用的时候:
double x=E_TO_F("-1.4780608e+001");

或者:
double x;
char *p="-1.4780608e+001";
x=E_TO_F(p);
---华软网友回复---
其实都走冤枉路了
直接读就可以,但要用double和%lf格式

double x;
char *p="-1.4780608e+001";
sscanf(p,"%lf",&x);      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。