Converts a number to a string with optional formatting such as thousands separators and negative signs.
Syntax
int WINAPI Int64ToString (
INT64 number,
LPWSTR pwszBuf,
UINT bufLen,
BOOL useNumberFormat,
NUMBERFMT* pFormatInfo,
DWORD dwFlags
)
Parameters
- number
- The number to format
- pwszBuf
- A pointer to the converted string
- bufLen
- The size of pwszBuf in WCHARs
- useNumberFormat
- A flag specifying whether to format the number
- pFormatInfo
- Structure describing the formatting to apply to the number
- dwFlags
- Bit flag specifying which members of pFormatInfo to use
Return Value
Number of WCHARs written to pszBuf, not including the terminating nul
Remarks
The NUMBERFMT structure is defined in the SDK.
The valid values for dwFlags are:
#define FMT_USE_NUMDIGITS 0x1 #define FMT_USE_LEADZERO 0x2 #define FMT_USE_GROUPING 0x4 #define FMT_USE_DECIMAL 0x8 #define FMT_USE_THOUSAND 0x10 #define FMT_USE_NEGNUMBER 0x20If useNumberFormat is FALSE, the function converts number to a string and returns. Otherwise, if pFormatInfo is not NULL, the function applies the formatting in pFormatInfo according to which flags are present (i.e. pFormatInfo->NumDigits will only be used if the FMT_USE_NUMDIGITS flag is set). For those flags which aren't set, the corresponding formatting comes from GetLocaleInfo.
If pFormatInfo is NULL, the function behaves as if dwFlags was 0 and all formatting information comes from GetLocaleInfo.
Note, due to a bug in the function, if pFormatInfo is NULL, useNumberFormat is nonzero, and the digit grouping in the user's locale setting is anything other than "123,456,789" in control panel (that's GetLocaleInfo(LOCALE_SGROUPING) returning a string other than '3;0'), then the grouping will not be properly applied, with only the digit before the semi-colon being taken into account.
This function is also known as _Int64ToString@28.