例如,声明下面2个变量:
CString str;
double x;
分别赋值:
str="x的值是:";
x=2.34;
又声明一个变量:
CString str2;
希望得到:
str2="x的值是:2.34";
通常的做法是:
str2.Format(L"%s%.f", str, x);
但这种方法不是很自然,也无法规定数值中的小数点后的位数。
如果能象 str2=str+x 这种形式就自然多了。
遗憾的是,C++字符串表达式中,数值类型不能隐含的转换为字符串类型。因此,我们需要显式的定义一个转换函数如下:
CString ftos(double num, UINT n) //n是转换后小数点后的位数
{
CString str;
str.Format(L"%s%d%s", L"%.", n, L"lf");
str.Format(str, num);
return str;
}
这样我们就能用下面的表达式得到结果了:
str2=str+ftos(x, 4);