发新话题
打印

浮点数(0.0018)用fcvt()转换成字符串不对怎么办?

浮点数(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的字符呢?
希望得到您的建议,非常感谢!

TOP

不明白你为什么使用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]

TOP

发新话题