Поделиться через


Функция GetNumberFormatA (winnls.h)

Форматирует числовую строку как числовую строку, настроенную для языкового стандарта, заданного идентификатором.

Примечание В целях взаимодействия приложение должно предпочесть функцию GetNumberFormatExgetNumberFormat , так как корпорация Майкрософт переходит к использованию имен языкового стандарта вместо идентификаторов языкового стандарта для новых языковых стандартов. Любое приложение, работающее только в Windows Vista и более поздних версий, должно использовать GetNumberFormatEx.
 

Синтаксис

int GetNumberFormatA(
  [in]            LCID             Locale,
  [in]            DWORD            dwFlags,
  [in]            LPCSTR           lpValue,
  [in, optional]  const NUMBERFMTA *lpFormat,
  [out, optional] LPSTR            lpNumberStr,
  [in]            int              cchNumber
);

Параметры

[in] Locale

Идентификатор языкового стандарта, указывающий языковой стандарт. Макрос MAKELCID можно использовать для создания идентификатора языкового стандарта или одного из следующих предопределенных значений.

[in] dwFlags

Флаги, управляющие работой функции. Приложение должно задать для этого параметра значение 0, если для lpFormat не задано значение NULL. В этом случае функция форматирует строку, используя переопределение пользователем в числовой формат по умолчанию для языкового стандарта. Если для lpFormat задано значение NULL, приложение может указать LOCALE_NOUSEROVERRIDE для форматирования строки с использованием системного числового формата по умолчанию для указанного языкового стандарта.

Осторожностью Использование LOCALE_NOUSEROVERRIDE настоятельно не рекомендуется, так как оно отключает пользовательские настройки.
 

[in] lpValue

Указатель на строку, завершающуюся значением NULL, содержащую числовую строку для форматирования. Эта строка может содержать только следующие символы. Все остальные символы недопустимы. Функция возвращает ошибку, если строка, обозначенная lpValue , отклоняется от этих правил.

  • Символы от "0" до "9".
  • Одна десятичная запятая (точка), если число является значением с плавающей запятой.
  • Знак минуса в первой позиции символа, если число является отрицательным значением.

[in, optional] lpFormat

Указатель на структуру NUMBERFMT , содержащую сведения о форматировании чисел, для всех членов которых заданы соответствующие значения. Если для этого параметра не задано значение NULL, функция использует языковой стандарт только для форматирования сведений, не указанных в структуре, например строкового значения языкового стандарта для знака "минус".

[out, optional] lpNumberStr

Указатель на буфер, в котором эта функция извлекает отформатированную числовую строку.

[in] cchNumber

Размер в значениях TCHAR для буфера числовых строк, указанного lpNumberStr. Кроме того, приложение может задать для этого параметра значение 0. В этом случае функция возвращает необходимый размер для буфера числовых строк и не использует параметр lpNumberStr .

Возвращаемое значение

Возвращает количество значений TCHAR, полученных в буфере, на которые указывает lpNumberStr в случае успешного выполнения. Если параметр cchNumber имеет значение 0, функция возвращает количество символов, необходимое для хранения отформатированных числовых строк, включая завершающий символ NULL.

Функция возвращает значение 0, если не удалось. Чтобы получить расширенные сведения об ошибке, приложение может вызвать Метод GetLastError, который может возвращать один из следующих кодов ошибок:

  • ERROR_INSUFFICIENT_BUFFER. Указанный размер буфера был недостаточно велик или для него неправильно задано значение NULL.
  • ERROR_INVALID_FLAGS. Значения, указанные для флагов, были недопустимыми.
  • ERROR_INVALID_PARAMETER. Любое из значений параметров было недопустимым.
  • ERROR_OUTOFMEMORY. Недостаточно места для выполнения этой операции.

Комментарии

Эта функция может извлекать данные из пользовательских языковых стандартов. Данные не обязательно будут одинаковыми с компьютера на компьютер или между запусками приложения. Если приложение должно сохранять или передавать данные, см. статью Использование данных сохраняемого языкового стандарта.

Если версия ANSI этой функции используется с идентификатором языкового стандарта только в Юникоде, функция может быть успешной, так как операционная система использует системную кодовую страницу. Однако символы, неопределенные на системной кодовой странице, отображаются в строке как вопросительный знак (?).

Примечание

Заголовок winnls.h определяет GetNumberFormat как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winnls.h (включая Windows.h)
Библиотека Kernel32.lib
DLL Kernel32.dll

См. также

GetNumberFormatEx

NUMBERFMT

Поддержка национальных языков

Функции поддержки национальных языков