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


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

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

Примечание По соображениям взаимодействия приложение должно предпоч есть функцию GetNumberFormatEx, чтобы GetNumberFormat, так как корпорация Майкрософт переносится на использование имен языкового стандарта вместо идентификаторов языков для новых языков. Любое приложение, работающее только в 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 или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winnls.h (включая Windows.h)
библиотеки Kernel32.lib
DLL Kernel32.dll

См. также

GetNumberFormatEx

NUMBERFMT

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

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