读取txt中的数字,读取的为“-1.4780608e+001”,我如何将它转化为科学计数法的数字。字符串转化为浮点型用atof,这个有专门的函数吗?或者怎么转化?

解决方案 »

  1.   

    sscanf(pchar,_T("%e"),&f1);
    pchar为字符串“-1.4780608e+001”,
    f1为float型
      

  2.   

    定义个函数来解决吧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);
      

  3.   

    其实都走冤枉路了
    直接读就可以,但要用double和%lf格式double x;
    char *p="-1.4780608e+001";
    sscanf(p,"%lf",&x);