Функция GetNumberFormat
Declare Function GetNumberFormat Lib "kernel32.dll" Alias "GetNumberFormatA" (ByVal Locale As Long, _
ByVal dwFlags As Long, ByVal lpValue As String, _
lpFormat As Any, ByVal lpNumberStr As String, _
ByVal cchNumber As Long) As Long
GetNumberFormat форматирует число в соответствии с принятым числовым форматом заданного локального контекста.
Возвращаемое значение
В случае ошибки возвращается 0 (используйте GetLastError для получения кода ошибки). В успешном случае функция возвращает число символов, записанных в буфер lpNumberStr
Параметры
- Locale
- Идентификатор локального контекста. Возможно использование следующих констант:
- LOCALE_SYSTEM_DEFAULT = &H400
- Системный локальный контекст по умолчанию
- LOCALE_USER_DEFAULT = &H800
- Пользовательский локальный контекст по умолчанию
- dwFlags
- Если используется структура в параметре lpFormat, то равно 0. Если структура используется, то можно использовать константу:
- LOCALE_NOUSEROVERRIDE = &H80000000
- Принудительное использование системных настроек локального контекста, даже если пользователь изменил их
- lpValue
- Форматируемое число. Может содержать только цифры от 0 до 9, одну десятичную точку, знак для отрицательных чисел в первой позиции. Остальные числа недействительны
- lpFormat
- Структура NUMBERFMT, содержащая информацию о форматируемой строке. При использовании локальных настроек по умолчанию используйте 0. В этом случае применяйте конструкцию ByVal CLng(0)
- lpNumberStr
- Буфер, куда записывается отформатированная строка
- cchNumber
- Размер буфера в символах для lpNumberStr
Пример
Dim Buffer As String, NF As NUMBERFMT
Buffer = String(255, 0)
With NF
.NumDigits = 3
.Grouping = 1
.lpDecimalSep = "."
.lpThousandSep = ""
.NegativeOrder = 0
End With
GetNumberFormat ByVal 0&, 0, "123456.78", NF, Buffer, Len(Buffer)
MsgBox Buffer
Смотри также
GetCurrencyFormat
Категория
Поддержка национальных языков