Función GetNumberFormatA (winnls.h)

Da formato a una cadena de número como una cadena de número personalizada para una configuración regional especificada por identificador.

Nota Por motivos de interoperabilidad, la aplicación debe preferir la función GetNumberFormatEx a GetNumberFormat porque Microsoft está migrando hacia el uso de nombres de configuración regional en lugar de identificadores de configuración regional para las nuevas configuraciones regionales. Cualquier aplicación que se ejecute solo en Windows Vista y versiones posteriores debe usar GetNumberFormatEx.
 

Sintaxis

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

Parámetros

[in] Locale

Identificador de configuración regional que especifica la configuración regional. Puede usar la macro MAKELCID para crear un identificador de configuración regional o usar uno de los siguientes valores predefinidos.

[in] dwFlags

Marcas que controlan la operación de la función. La aplicación debe establecer este parámetro en 0 si lpFormat no está establecido en NULL. En este caso, la función da formato a la cadena mediante invalidaciones de usuario al formato de número predeterminado para la configuración regional. Si lpFormat se establece en NULL, la aplicación puede especificar LOCALE_NOUSEROVERRIDE para dar formato a la cadena mediante el formato de número predeterminado del sistema para la configuración regional especificada.

Precaución Se recomienda encarecidamente el uso de LOCALE_NOUSEROVERRIDE, ya que deshabilita las preferencias del usuario.
 

[in] lpValue

Puntero a una cadena terminada en null que contiene la cadena de número que se va a dar formato. Esta cadena solo puede contener los siguientes caracteres. Todos los demás caracteres no son válidos. La función devuelve un error si la cadena indicada por lpValue se desvía de estas reglas.

  • Caracteres "0" a "9".
  • Un separador decimal (punto) si el número es un valor de punto flotante.
  • Signo menos en la primera posición del carácter si el número es un valor negativo.

[in, optional] lpFormat

Puntero a una estructura NUMBERFMT que contiene información de formato de número, con todos los miembros establecidos en los valores adecuados. Si este parámetro no se establece en NULL, la función usa la configuración regional solo para dar formato a la información no especificada en la estructura, por ejemplo, el valor de cadena específico de la configuración regional para el signo negativo.

[out, optional] lpNumberStr

Puntero a un búfer en el que esta función recupera la cadena de número con formato.

[in] cchNumber

Tamaño, en valores TCHAR, para el búfer de cadena de número indicado por lpNumberStr. Como alternativa, la aplicación puede establecer este parámetro en 0. En este caso, la función devuelve el tamaño necesario para el búfer de cadena de números y no usa el parámetro lpNumberStr .

Valor devuelto

Devuelve el número de valores TCHAR recuperados en el búfer indicado por lpNumberStr si se ejecuta correctamente. Si el parámetro cchNumber se establece en 0, la función devuelve el número de caracteres necesarios para contener la cadena de número con formato, incluido un carácter nulo de terminación.

La función devuelve 0 si no se realiza correctamente. Para obtener información de error extendida, la aplicación puede llamar a GetLastError, que puede devolver uno de los siguientes códigos de error:

  • ERROR_INSUFFICIENT_BUFFER. Un tamaño de búfer proporcionado no era lo suficientemente grande o se estableció incorrectamente en NULL.
  • ERROR_INVALID_FLAGS. Los valores proporcionados para las marcas no eran válidos.
  • ERROR_INVALID_PARAMETER. Cualquiera de los valores de parámetro no era válido.
  • ERROR_OUTOFMEMORY. No había suficiente almacenamiento disponible para completar esta operación.

Comentarios

Esta función puede recuperar datos de configuraciones regionales personalizadas. No se garantiza que los datos sean los mismos desde el equipo al equipo o entre ejecuciones de una aplicación. Si la aplicación debe conservar o transmitir datos, consulte Uso de datos de configuración regional persistente.

Cuando se usa la versión ANSI de esta función con un identificador de configuración regional solo Unicode, la función puede realizarse correctamente porque el sistema operativo usa la página de códigos del sistema. Sin embargo, los caracteres que no están definidos en la página de códigos del sistema aparecen en la cadena como signo de interrogación (?).

Nota

El encabezado winnls.h define GetNumberFormat como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutro de codificación con código que no es neutral de codificación puede provocar discrepancias que dan lugar a errores de compilación o en tiempo de ejecución. Para obtener más información, vea Convenciones para prototipos de función.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado winnls.h (incluya Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

GetNumberFormatEx

NUMBERFMT

Compatibilidad con idiomas nacionales

Funciones de compatibilidad con idiomas nacionales