CString str;
str.Format(_T("%f"),123.22);
默认会显示123.220000
123 -> 123.00000
如何去掉0?
str.Format(_T("%f"),123.22);
默认会显示123.220000
123 -> 123.00000
如何去掉0?
解决方案 »
- 对24位位图轮廓提取的问题
- 怎样在VC中关联已经做好的html帮助文件.
- 千兆以太网 winshark api采集数据
- 没有使用AppWizard的最基本的例子Hello MFC,出现这些问题是为什么?????
- 3000分学习windows系列(6)
- 函数带有BSTR*的参数,不会用啊
- 这几天在看winsock I/O方法,我想问一下平时用得最多的是哪一种套接字模式或套接字I/O模型?
- 对话框程序运行时,按ESC键就退出,怎么屏蔽这个键?
- 请问如何能够得到其他机器的网卡MAC地址!
- 关于windows9x中开发数据采集程序的问题,请指教。
- DLL怎么使用主模块的变量?
- 请教个问题,VC2005如何做解决方案的“镜像”之类的事情?
{
if(strFloat.Find('.')<0)
return; int nIndex;
char aTemp; while(true)
{
nIndex = strFloat.GetLength()-1;
aTemp = strFloat.GetAt(nIndex);
if(aTemp=='.')
{
strFloat.Delete(nIndex);
break;
}
if(aTemp!='0')
break;
strFloat.Delete(nIndex);
}
}
//%g只保存小数点后非零的有效数字
str.Format(_T("%g"),123.22000);
AfxMessageBox(str);
int 整数位数 = 0;
int 小数位数 = 0;
strFormat.Format(_T("%%d.df"), 整数位数, 小数位数);CString str; // 数据串
str.FormatstrFormat,123.22); 这样,你就可以控制你的位数了。
楼主一定要深究的话,可以这样做:CString strFormat = _T(""); // 格式串
int 整数位数 = 0;
int 小数位数 = 0;
strFormat.Format(_T("%%d.df"), 整数位数, 小数位数);CString str; // 数据串
str.Format(strFormat,123.22);这样,你就可以控制你的位数了。
小数可以,123 就变指数了g 使用%f和%e表示中的较精确者来表示浮点数 G 同g格式,但表示为指数
stringstream ss;
ss<<dVal;
string sVal;
ss>>sVal;
good luck.
如果想 从右向左 依次去掉'0'可以每次判断两个字符,例如:
字符串 szABC[]=123.000 , 我们想规范为 123.01. 比 szABC[N] 是否为'0'2. 如果是'0',再比较 szABC[N-1] 是否为 '.'
如果不是'0',退出3. 如果是'.',保留szABC[N]为'0',退出
如果不是'.',说明不是有效位,删掉即可4. 返回第一步,再次循环,直到退出^^ 看问题要放开思想,从右向左并不是一次只能判断一个字符。从左向右其实也可以,用于数组中只有一个小数点,
所以可以先找到小数点,在判断小数部分是否为零,
如果为零,保留一个'0'
如果不为零,删除全部的'0'^^
int len = strlen(str);while('0'==str[len])
{
if('.'==str[len-1])
{
break;
}
else
{
str[len] = '\0';
}
len--;
}
str.Format(_T("%.2f"),123.22);
str.Format("%f",123); //这样就不行了
CString str;
if(a==(int)a)//小数点后为0
{
str.Format(_T("%.0f"),a);
}
else
{
str.Format("%f",123.0000);
str.TrimRight("0");
}
MessageBox(str);