Board logo

标题: 浮点数(0.0018)用fcvt()转换成字符串不对怎么办? [打印本页]

作者: pinkiecao    时间: 2006-1-23 20:20     标题: 浮点数(0.0018)用fcvt()转换成字符串不对怎么办?

各位大侠:

我发现当双精度数很小(即小于0,且有效数字不是从十分位开始时)用fcvt()会将有效数字前的‘0’省略,该怎么办呢?
double f1;char*str;CString str1[16],Head,Tail;
   
    str=fcvt(f1,4,&dec,&sign);
    str1[1]=str;
    Head=str1[1].Left(dec);
    Tail=str1[1].Mid(dec);
    str1[1]=Head+"."+Tail;
如果f1=0.0018,此时str1[1]=0.18,怎样才能得到0.0018的字符呢?
希望得到您的建议,非常感谢!
作者: Nothing    时间: 2006-1-23 23:34

不明白你为什么使用fcvt
既然使用了MFC中的CString类,就直接使用CString的方法吧。
请看下面的代码

[code:b8a2dd4c12]        CString a,b,c,d;
        double f1=0.000018;
       
        a.Format( "%f",f1);
        b=a.Left(a.Find("."));
        c=a.Right(a.GetLength()- a.Find(".")-1);
        d=b+"."+c;
        cout << (LPCTSTR)b << endl;
        cout << (LPCTSTR)c << endl;
        cout << (LPCTSTR)d << endl;[/code:b8a2dd4c12]




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0