Função GetNumberFormatA (winnls.h)

Formata uma cadeia de caracteres numérica como uma cadeia de caracteres de número personalizada para uma localidade especificada pelo identificador.

Nota Por motivos de interoperabilidade, o aplicativo deve preferir a função GetNumberFormatEx a GetNumberFormat porque a Microsoft está migrando para o uso de nomes de localidade em vez de identificadores de localidade para novas localidades. Qualquer aplicativo executado somente no Windows Vista e posterior deve usar GetNumberFormatEx.
 

Sintaxe

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 localidade que especifica a localidade. Você pode usar a macro MAKELCID para criar um identificador de localidade ou usar um dos valores predefinidos a seguir.

[in] dwFlags

Sinalizadores que controlam a operação da função. O aplicativo deve definir esse parâmetro como 0 se lpFormat não estiver definido como NULL. Nesse caso, a função formata a cadeia de caracteres usando substituições de usuário para o formato de número padrão para a localidade. Se lpFormat for definido como NULL, o aplicativo poderá especificar LOCALE_NOUSEROVERRIDE para formatar a cadeia de caracteres usando o formato de número padrão do sistema para a localidade especificada.

Cuidado O uso de LOCALE_NOUSEROVERRIDE é altamente desencorajado, pois desabilita as preferências do usuário.
 

[in] lpValue

Ponteiro para uma cadeia de caracteres terminada em nulo que contém a cadeia de caracteres de número a ser formatada. Essa cadeia de caracteres só pode conter os caracteres a seguir. Todos os outros caracteres são inválidos. A função retornará um erro se a cadeia de caracteres indicada por lpValue se desviar dessas regras.

  • Caracteres "0" a "9".
  • Um ponto decimal (ponto) se o número for um valor de ponto flutuante.
  • Um sinal de subtração na primeira posição de caractere se o número for um valor negativo.

[in, optional] lpFormat

Ponteiro para uma estrutura NUMBERFMT que contém informações de formatação numérica, com todos os membros definidos como valores apropriados. Se esse parâmetro não estiver definido como NULL, a função usará a localidade somente para informações de formatação não especificadas na estrutura, por exemplo, o valor de cadeia de caracteres específico da localidade para o sinal negativo.

[out, optional] lpNumberStr

Ponteiro para um buffer no qual essa função recupera a cadeia de caracteres de número formatada.

[in] cchNumber

Tamanho, em valores TCHAR, para o buffer de cadeia de caracteres de número indicado por lpNumberStr. Como alternativa, o aplicativo pode definir esse parâmetro como 0. Nesse caso, a função retorna o tamanho necessário para o buffer de cadeia de caracteres numérica e não usa o parâmetro lpNumberStr .

Retornar valor

Retorna o número de valores de TCHAR recuperados no buffer indicado por lpNumberStr se tiver êxito. Se o parâmetro cchNumber for definido como 0, a função retornará o número de caracteres necessários para manter a cadeia de caracteres de número formatada, incluindo um caractere nulo de terminação.

A função retornará 0 se não for bem-sucedida. Para obter informações de erro estendidas, o aplicativo pode chamar GetLastError, que pode retornar um dos seguintes códigos de erro:

  • ERROR_INSUFFICIENT_BUFFER. Um tamanho de buffer fornecido não era grande o suficiente ou estava definido incorretamente como NULL.
  • ERROR_INVALID_FLAGS. Os valores fornecidos para sinalizadores não eram válidos.
  • ERROR_INVALID_PARAMETER. Qualquer um dos valores de parâmetro era inválido.
  • ERROR_OUTOFMEMORY. Não havia armazenamento suficiente disponível para concluir esta operação.

Comentários

Essa função pode recuperar dados de localidades personalizadas. Não há garantia de que os dados sejam iguais de computador para computador ou entre execuções de um aplicativo. Se o aplicativo precisar persistir ou transmitir dados, consulte Usando dados de localidade persistente.

Quando a versão ANSI dessa função é usada com um identificador de localidade somente Unicode, a função pode ser bem-sucedida porque o sistema operacional usa a página de código do sistema. No entanto, os caracteres indefinidos na página de código do sistema aparecem na cadeia de caracteres como um ponto de interrogação (?).

Observação

O cabeçalho winnls.h define GetNumberFormat como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows 2000 Server [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho winnls.h (inclua Windows.h)
Biblioteca Kernel32.lib
DLL Kernel32.dll

Confira também

GetNumberFormatEx

NUMBERFMT

Suporte a idiomas nacionais

Funções de suporte à linguagem nacional