CString StringProcessor::ConvertRmbStr(double dNum) { char szNum[13] = {0}; sprintf(szNum,"%0.2f",dNum); int nLen = strlen(szNum); int nComma = 0; nComma = nLen/3 - 1; if (nLen % 3 == 0)//刚刚好的时候,最前面不能加分号 分号数目减去1. { nComma --; } int nResLen = nLen+nComma; char *pszRes = new char[nResLen+1]; //结果字符串 pszRes[nResLen] = 0; //拷贝小数. pszRes[nResLen-1] = szNum[nLen-1]; pszRes[nResLen-2] = szNum[nLen-2]; pszRes[nResLen-3] = szNum[nLen-3]; //对于小数前面的加逗号. for(int i=nResLen-4,j = nLen-4;i>=0;--i) { if ((nResLen-3)-i>0 && ((nResLen-3)-i)%4 == 0 ) { //加逗号 pszRes[i] = ','; } else { pszRes[i] = szNum[j]; --j; } } CString strRet = pszRes; return strRet; }