LPCTSTR FormatThousandNumber(const INT64 iInVal)
{
static CString strVal;
INT64 iVal = (INT64)(iInVal < 0 ? (-iInVal):(iInVal));
strVal.Empty();
do
{
CString szSub;
szSub.Format(_T("%d"), iVal % 1000);
iVal /= 1000;
if(iVal) szSub.Insert(0, _T(','));
strVal.Insert(0, szSub);
}while(iVal);
if(iInVal < 0)
{
strVal.Insert(0, _T('-'));
}
return strVal;
}
//测试用例
int iIn[] = { 0, 123, 1234, 1234567890, -123456 };
for(int i=0; i<_countof(iIn); i++)
{
TRACE(_T("%d = %s\n"), iIn[i], FormatThousandNumber(iIn[i]));
}
调试输出
0 = 0
123 = 123
1234 = 1,234
1234567890 = 1,234,567,890
-123456 = -123,456