如:str1="1.78e-002"怎么才能将str2 = "0.0178"

解决方案 »

  1.   

    double d = 0.0178;
    CString str;
    str.Format("%e",d);
      

  2.   

    哦,有误!str.Format("%e",d);  -------结果为"1.78e-002"
    str.Format("%f",d);  -------结果为"0.0178"
      

  3.   

    先要用_gcvt等函数转换成数字,然后再用楼上的format转换成字符串
      

  4.   

    字符串->数值->字符串
      

  5.   

    CString CGsCardCtrl::MatlabToFloat(CString strVal)
    {
    int nIndexE = 0; //'e'所在位置
    float lSvl = 0; //'e'左侧的数值
    int   nCount = 0;                   //'e'右侧的数值
    CString strReturn = ""; nIndexE = strVal.Find('e');
    lSvl = atof(strVal.Left(nIndexE));
    nCount = atoi(strVal.Mid(nIndexE + 2, strVal.GetLength())); if("-" == strVal.Mid(nIndexE + 1, 1))
    {
    lSvl = lSvl / pow(10, nCount);
    }
    else
    {
    lSvl = lSvl * pow(10, nCount);
    } strReturn.Format("%f", lSvl);
    return strReturn;
    }
      

  6.   

    不好意思。。你们的想法都是错的
    ???
      楼上几个不是列出函数了么??什么叫想法错了?你想自己实现?那看看楼上的代码咯。
    我也说一次函数吧。假设你的str="1.55e-2", 
    然后double f=strtod(str,NULL)(如果你保证str写法正确),
    char s[20]; 
    sprintf(s,"%f",(float )f); 
    //  s就是你想要的字符串.
    printf(s);
    这些函数包含stdlib就可以..不需要MFC.
      

  7.   

    帮你百度了下  字符串转换  
    贴几个网, 自己选吧;
    http://blog.sina.com.cn/u/58d95050010009dy
    http://krings.itpub.net/
    .........atof(将字符串转换成浮点型数) 
    atoi(将字符串转换成整型数) 
    atol(将字符串转换成长整型数) 
    ecvt(将浮点型数转换成字符串,取四舍五入) 
    fcvt(将浮点型数转换为字符串,取四舍五入) 
    gcvt(将浮点型数转换为字符串,取四舍五入) 
    strtod(将字符串转换成浮点型数) 
    strtol(将字符串转换成长整型数) 
    strtoul(将字符串转换成无符号长整型数) 
    toascii(将整型数转换成合法的ASCII码字符) 
    tolower(将大写字母转换成小写字母) 
    toupper(将小写字母转换成大写字母) 
      

  8.   

    _gcvt是将浮点型转换成字符串 我现在得到的只有一个字符串,并且我要转换的是个科学计数法不是浮点型的数字strtod又是什么?只是取出字符串中的数字,能得到科学计数法的正确值吗?别告诉我你连科学计数法是什么都不知道,呵呵随便扔点东西上来就想拿分的人。我一分都不会给的diudiuqqqq是对的
      

  9.   

    。天啊我无语了。你运行了我的程序了么? 你没运行怎么知道我是随便乱扔的。
    strtod是什么。。这个函数内部就是“diudiuqqqq是对的” 贴的代码。“
    strtod又是什么?只是取出字符串中的数字,能得到科学计数法的正确值吗?别告诉我你连科学计数法是什么都不知道,呵呵
    ”晕死。。它这个函数是c\C++标准库的,它能进标准库,就肯定能得到科学计数法的正确值。上过初中的都知道科学计数法。随便扔也得花百度搜索的时间是吧。我总没甩个避孕套广告吧。好冤枉的感觉,   运行我写的代码 什么也不说了。“
    假设你的str="1.55e-2", 
    然后double f=strtod(str,NULL)(如果你保证str写法正确),
    char s[20]; 
    sprintf(s,"%f",(float )f); 
    //  s就是你想要的字符串.
    printf(s);
    这些函数包含stdlib就可以..不需要MFC.