MFC 숫자 3자리 단위마다 콤마 넣기

Develop2018. 11. 28. 11:22




숫자 데이터를 화폐 단위로 보여줄때 보통 3자리 단위마다 콤마를 삽입합니다. 아래 코드는 실제 증권사에서 개발당시 사용한 코드로 조단위가 넘는 높은 숫자 데이터도 콤마 구분이 잘 되기 위해서 __int64 자료형을 사용하였습니다. 일반 int형 숫자를 입력하셔도 무방하게 사용 가능합니다. 아래 소소코드는 콤마를 삽입하는 코드와 제거하는 코드로 구분됩니다. 실제 필드에서 검증된 코드이니 안심하고 사용하셔도 좋습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
//
// 콤마 삽입
//
CString InsertComma(__int64 _llAmount)
{
    CString strAmount;
    strAmount.Format(_T("%I64d"), _llAmount);
 
    NUMBERFMT nFmt = { 003, _T("."), _T(","), 1 };
 
    TCHAR szBuffer[64];
    ::GetNumberFormat(NULLNULL, strAmount, &nFmt, szBuffer, sizeof(szBuffer));
 
    strAmount = szBuffer;
 
    return strAmount;
}
 
 
//
// 콤마 제거
//
__int64 DeleteComma(CString _strAmount)
{
    LONGLONG llAmount;
    _strAmount.Replace(_T(","), _T(""));
    llAmount = _ttoi64(_strAmount);
 
    return llAmount;
}
cs




작성자

Posted by GLORY PAPA

관련 글

댓글 영역