Condividi tramite


Funzione GetNumberFormatW (winnls.h)

Formatta una stringa numerica come stringa numerica personalizzata per le impostazioni locali specificate dall'identificatore.

Nota Per motivi di interoperabilità, l'applicazione deve preferire la funzione GetNumberFormatEx a GetNumberFormat perché Microsoft sta eseguendo la migrazione verso l'uso dei nomi delle impostazioni locali anziché degli identificatori delle impostazioni locali per le nuove impostazioni locali. Qualsiasi applicazione eseguita solo in Windows Vista e versioni successive deve usare GetNumberFormatEx.
 

Sintassi

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

Parametri

[in] Locale

identificatore delle impostazioni locali che specifica le impostazioni locali. È possibile utilizzare la macro MAKELCID per creare un identificatore delle impostazioni locali o usare uno dei valori predefiniti seguenti.

[in] dwFlags

Flag che controllano l'operazione della funzione. L'applicazione deve impostare questo parametro su 0 se lpFormat non è impostato su NULL. In questo caso, la funzione formatta la stringa usando l'override dell'utente nel formato numerico predefinito per le impostazioni locali. Se lpFormat è impostato su NULL, l'applicazione può specificare LOCALE_NOUSEROVERRIDE per formattare la stringa usando il formato numero predefinito del sistema per le impostazioni locali specificate.

Attenzione L'uso di LOCALE_NOUSEROVERRIDE è fortemente sconsigliato perché disabilita le preferenze utente.
 

[in] lpValue

Puntatore a una stringa con terminazione Null contenente la stringa numerica da formattare. Questa stringa può contenere solo i caratteri seguenti. Tutti gli altri caratteri non sono validi. La funzione restituisce un errore se la stringa indicata da lpValue devia da queste regole.

  • Caratteri da "0" a "9".
  • Un separatore decimale (punto) se il numero è un valore a virgola mobile.
  • Segno meno nella prima posizione del carattere se il numero è un valore negativo.

[in, optional] lpFormat

Puntatore a una struttura NUMBERFMT che contiene informazioni sulla formattazione dei numeri, con tutti i membri impostati sui valori appropriati. Se questo parametro non è impostato su NULL, la funzione usa le impostazioni locali solo per le informazioni di formattazione non specificate nella struttura, ad esempio il valore stringa specifico delle impostazioni locali per il segno negativo.

[out, optional] lpNumberStr

Puntatore a un buffer in cui questa funzione recupera la stringa numerica formattata.

[in] cchNumber

Dimensioni, in valori TCHAR, per il buffer stringa numerico indicato da lpNumberStr. In alternativa, l'applicazione può impostare questo parametro su 0. In questo caso, la funzione restituisce le dimensioni necessarie per il buffer della stringa numerica e non usa il parametro lpNumberStr.

Valore restituito

Restituisce il numero di valori TCHAR recuperati nel buffer indicato da lpNumberStr in caso di esito positivo. Se il parametro cchNumber è impostato su 0, la funzione restituisce il numero di caratteri necessari per contenere la stringa numerica formattata, incluso un carattere Null di terminazione.

La funzione restituisce 0 se non riesce. Per ottenere informazioni estese sull'errore, l'applicazione può chiamare GetLastError, che può restituire uno dei codici di errore seguenti:

  • ERROR_INSUFFICIENT_BUFFER. Le dimensioni del buffer fornite non sono sufficienti o non sono state impostate correttamente su NULL.
  • ERROR_INVALID_FLAGS. I valori specificati per i flag non sono validi.
  • ERROR_INVALID_PARAMETER. Uno dei valori dei parametri non è valido.
  • ERROR_OUTOFMEMORY. Spazio di archiviazione insufficiente per completare questa operazione.

Osservazioni

Questa funzione può recuperare i dati dalle impostazioni locali personalizzate . Non è garantito che i dati siano uguali da computer a computer o tra esecuzioni di un'applicazione. Se l'applicazione deve rendere persistenti o trasmettere i dati, vedere Using Persistent Locale Data.

Quando la versione ANSI di questa funzione viene usata con un identificatore delle impostazioni locali solo Unicode, la funzione può avere esito positivo perché il sistema operativo usa la tabella codici del sistema. Tuttavia, i caratteri non definiti nella tabella codici di sistema vengono visualizzati nella stringa come punto interrogativo (?).

Nota

L'intestazione winnls.h definisce GetNumberFormat come alias che seleziona automaticamente la versione ANSI o Unicode di questa funzione in base alla definizione della costante del preprocessore UNICODE. La combinazione dell'utilizzo dell'alias indipendente dalla codifica con il codice non indipendente dalla codifica può causare mancate corrispondenze che generano errori di compilazione o di runtime. Per altre informazioni, vedere convenzioni di per i prototipi di funzioni.

Fabbisogno

Requisito Valore
client minimo supportato Windows 2000 Professional [solo app desktop]
server minimo supportato Windows 2000 Server [solo app desktop]
piattaforma di destinazione Finestre
intestazione winnls.h (include Windows.h)
libreria Kernel32.lib
dll Kernel32.dll

Vedere anche

GetNumberFormatEx

NUMBERFMT

supporto linguistico nazionale

funzioni di supporto del linguaggio nazionale