C++ float规定小数位数转换为CString输出
有一个float型的数,只想输出2位小数,给到CString里输出。我百度了好久,有些说可以用FormatFloat函数,但是我编译老提示FormatFloat没有定义,...
有一个float型的数,只想输出2位小数,给到CString里输出。
我百度了好久,有些说可以用FormatFloat函数,但是我编译老提示FormatFloat没有定义,是要添加头文件还是C++的MFC里根本没这个函数?
还有些说sprintf也可以,
int sprintf(char *,const char *format [, argument] ... )
然后我用,但是在char *到CString的过程中始终不成功,所以也不知道该函数是否起到了减少小数位数的作用。。我的部分代码是:
char s[10];//用char *s的话编译没问题,运行的时候直接出错退出
sprintf(s,"%3.3",D[c[1]]);//D[]中为float型的数,c[1]为确定D[]的下标
m_display->Format("%s",s);//m_display为指针,据一片帖子说能用该format函数把char 转换为CString..
最后我要的是把m_display给输出出来
请高人帮忙解答一下,谢谢//我用的VC6.0
楼下的确实解决了问题,不过能帮忙解释下为什么吗,或者说
format("%.2lf",x)是怎么起到这个作用的。。分肯定给你 展开
我百度了好久,有些说可以用FormatFloat函数,但是我编译老提示FormatFloat没有定义,是要添加头文件还是C++的MFC里根本没这个函数?
还有些说sprintf也可以,
int sprintf(char *,const char *format [, argument] ... )
然后我用,但是在char *到CString的过程中始终不成功,所以也不知道该函数是否起到了减少小数位数的作用。。我的部分代码是:
char s[10];//用char *s的话编译没问题,运行的时候直接出错退出
sprintf(s,"%3.3",D[c[1]]);//D[]中为float型的数,c[1]为确定D[]的下标
m_display->Format("%s",s);//m_display为指针,据一片帖子说能用该format函数把char 转换为CString..
最后我要的是把m_display给输出出来
请高人帮忙解答一下,谢谢//我用的VC6.0
楼下的确实解决了问题,不过能帮忙解释下为什么吗,或者说
format("%.2lf",x)是怎么起到这个作用的。。分肯定给你 展开
1个回答
展开全部
CString str;
float x = 1.0001;
str.Format("%.2f",x);
或
char s[128];
sprintf(s,"%.2f",x);
str = CString(s);
msdn:
Format:
Call this member function to write formatted data to a CString in the same way that sprintf formats data into a C-style character array
float x = 1.0001;
str.Format("%.2f",x);
或
char s[128];
sprintf(s,"%.2f",x);
str = CString(s);
msdn:
Format:
Call this member function to write formatted data to a CString in the same way that sprintf formats data into a C-style character array
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询