int GetNumberFormat(
LCID Locale, // locale
DWORD dwFlags, // options
LPCTSTR lpValue, // input number string
CONST NUMBERFMT *lpFormat, // formatting information
LPTSTR lpNumberStr, // output buffer
int cchNumber // size of output buffer
);
넘버를 스트링으로 변환할때 Format이 필요할때가 있는데.. 바로.. 그걸 해주는 겁니다. 즉 3자리씩 끊어서 콤마(,)를 넣어준다는 것이지요
123456789 --> 123,456,789 이런식..
CString InSertComma(double dNum)
{
int i, j;
CString strTmp;
CString strNum;
strTmp.Format("%.0f", dNum);
for(i = strTmp.GetLength() - 1, j = 1; i >= 0; i--, j++)
{
if( ((j % 3) == 1 ) && (j > 3) )
{
strNum.Insert(0, ',');
strNum.Insert(0, strTmp.GetAt(i));
}
else
{
strNum.Insert(0, strTmp.GetAt(i));
}
}
return strNum;
}
<< 소스 짜기 귀찮아서 가져왔습니다. 소스 출처 : http://blog.naver.com/sumnjc/80011895161 >>
뭐 위와 같이 대충 만들어 써도 문제가 안되겠으나. API에 제공하는데 굳이 만들필요가 있겠습니까..
int FormatString(LPCTSTR lpszValue,
LPTSTR lpszBuf,
DWORD dwSizeBuf)
{
int rc = 0;
if (lpszValue && lpszBuf && (dwSizeBuf != 0))
{
ZeroMemory(lpszBuf, dwSizeBuf*sizeof(TCHAR));
NUMBERFMT m_nf = { 0 , 0 , 3 , "." , "," , 1 };
rc = GetNumberFormat(NULL /*LOCALE_SYSTEM_DEFAULT*/, 0/*Flag*/, lpszValue./*문자열 숫자*/, &m_nf/*문자열 포맷*/,
lpszBuf/*변환된 문자열숫자*/, dwSizeBuf/*버퍼사이즈*/);
}
return rc;
}
댓글 없음:
댓글 쓰기