把Number4096输出为String4,096

类别:VC语言 点击:0 评论:0 推荐:

类别: 各种转换

题目:将一个number转换为一个string

DEMO:
输入一个number:4096000
输出string为:  4,096,000

// This function accepts a number and converts it to a
// string, inserting commas where appropriate.
PTSTR BigNumToString(LONG lNum, PTSTR szBuf) {

   TCHAR szNum[100];
   wsprintf(szNum, TEXT("%d"), lNum);
   NUMBERFMT nf;
   nf.NumDigits = 0;     

   nf.LeadingZero = FALSE;       

   nf.Grouping = 3;

   nf.lpDecimalSep = TEXT(".");   

   nf.lpThousandSep = TEXT(",");  

   nf.NegativeOrder = 0;   
   GetNumberFormat(LOCALE_USER_DEFAULT, 0, szNum, &nf, szBuf, 100);
   return(szBuf);
}

Usage:

TCHAR szBuf[50];
BigNumToString(dwPageSize, szBuf);

Definition:

// The NUMBERFMT structure contains information that defines
// the format of a number string.
// The GetNumberFormat function uses this information to customize
// a number string for a specified locale.
typedef struct _numberfmt {
  UINT      NumDigits;
  UINT      LeadingZero;
  UINT      Grouping;
  LPTSTR    lpDecimalSep;
  LPTSTR    lpThousandSep;
  UINT      NegativeOrder;
} NUMBERFMT, *LPNUMBERFMT;

// The GetNumberFormat function formats a number string as a number
// string customized for a specified locale.
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
);

本文地址:http://com.8s8s.com/it/it3165.htm