在编程的时候我们经常会遇到要去除掉小数点后面无效的零,比如在公司我有一个项目需要在界面上显示10w,120w,123.56w等类型的数据,而我从数据库提取出来的是100000,1200000等类型的整数,我当时首先想到的是将这些整数/10000来将数据缩小10000倍来得到一个小数float,然后用sprintf将float数据转化成字符串,但这存在一个问题,float数据用%s转化成字符串成后,会保留小数点后面六位的数据,比如是1.2,化成字符串就是1.200000,这就不满足显示的需求。带着这个疑问我去网上找到了答案,用%.3g格式来匹配转化成字符串。
float _text_A=0.0;
int iAward_A=12500
CString szNums="";
CTextUI *pText=static_cast(m_pm.FindControl("TextUI1"));
if(pText)
{
_text_A=iAward_A/10000.0;
szNums.Format("%.3g%s",_text_A,"W");
pText->SetText(szNums);//显示1.25W
}