现在又一个字符串 Cstring str=_T("123.45678");
如何把它转换成DOUBLE类型的小数 123.45678啊????

解决方案 »

  1.   


    无责任回复:1. 找到小数点,将字符串分为 整数部分 和 小数部分。
    2. 整数部分 可以用 atoi()转换为整型
    3. 小数部分 也使用 atoi()转换为整型,再由整型转换为浮点型
    4. 计算 小数部分 有多少位数,就除以几个10
    5. 最后将 整数部分 和 小数部分 相加例如 123.45678,
    1. 先分为123 和 45678,
    2. 字符串"123"转换为整数123,
    3. 字符串"45678"转换为整数45678,再转换为浮点数45678.0
    4. 字符串"45678"有5个字符,就用45678.0除以5个10,得到0.45678,
    5. 123 + 0.45678 = 123.45678以上!
      

  2.   

    先将CString转成char *,再用sscanf()或是atof(),给你例子:
     LPTSTR p;   double   x; 
     LPTSTR p = s.GetBuffer(20);//
     x   =   atof(   p  );   
      

  3.   

    double value = _tstof((LPCTSTR)str);
      

  4.   

    atof()这个……有点……
    什么意思? at of?
      

  5.   

    CString strText(_T("123.456789"));
    double dValue = _tstof(strText);
    CString strMsg(_T(""));
    strMsg.Format(_T("%lf"), dValue);
    AfxMessageBox(strMsg);