Función GetNumberFormatEx (winnls.h)

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

Nota La aplicación debe llamar a esta función en preferencia a GetNumberFormat si está diseñada para ejecutarse solo en Windows Vista y versiones posteriores.

 
Nota Esta función puede dar formato a los datos que cambian entre versiones, por ejemplo, debido a una configuración regional personalizada. Si la aplicación debe conservar o transmitir datos, consulte Uso de datos de configuración regional persistente.
 

Sintaxis

int GetNumberFormatEx(
  [in, optional]  LPCWSTR          lpLocaleName,
  [in]            DWORD            dwFlags,
  [in]            LPCWSTR          lpValue,
  [in, optional]  const NUMBERFMTW *lpFormat,
  [out, optional] LPWSTR           lpNumberStr,
  [in]            int              cchNumber
);

Parámetros

[in, optional] lpLocaleName

Puntero a un nombre de configuración regional o 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 a la que se va a dar formato. Esta cadena solo puede contener los caracteres siguientes. 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 de 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 la aplicación no establece este parámetro 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 la cadena de 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. Como alternativa, este parámetro contiene NULL si cchNumber está establecido en 0. En este caso, la función devuelve el tamaño necesario para el búfer de cadena de números.

[in] cchNumber

Tamaño, en caracteres, 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 caracteres 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

A partir de Windows 8: si la aplicación pasa etiquetas de idioma a esta función desde el espacio de nombres Windows.Globalization, primero debe convertir las etiquetas mediante una llamada a ResolveLocaleName.

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [aplicaciones de escritorio | aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 [aplicaciones de escritorio | aplicaciones para UWP]
Plataforma de destino Windows
Encabezado winnls.h (incluye Windows.h)
Library Kernel32.lib
Archivo DLL Kernel32.dll

Vea también

GetNumberFormat

NUMBERFMT

Compatibilidad con idiomas nacionales

Funciones de compatibilidad con idiomas nacionales