Compartilhar via


Função GetNumberFormatA (winnls.h)

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

Observação Por motivos de interoperabilidade, o aplicativo deve preferir a função GetNumberFormatExGetNumberFormat 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 seguintes valores predefinidos.

[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 estiver 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 formatar informações não especificadas na estrutura, por exemplo, o valor da cadeia de caracteres específica 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.

Valor de retorno

Retorna o número de valores TCHAR recuperados no buffer indicado por lpNumberStr se bem-sucedido. 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 foi 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 essa operação.

Observações

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, caracteres que são indefinidos na página de código do sistema aparecem na cadeia de caracteres como um ponto de interrogação (?).

Nota

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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

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

Consulte também

GetNumberFormatEx

NUMBERFMT

de Suporte à Linguagem Nacional

funções de suporte à linguagem nacional