Freigeben über


GetNumberFormatA-Funktion (winnls.h)

Formatiert eine Zahlenzeichenfolge als Zahlenzeichenfolge, die für ein durch den Bezeichner angegebenes Gebietsschema angepasst wird.

Hinweis Aus Interoperabilitätsgründen sollte die Anwendung die GetNumberFormatEx-Funktion gegenüber GetNumberFormat bevorzugen, da Microsoft zur Verwendung von Gebietsschemanamen anstelle von Gebietsschemabezeichnern für neue Gebietsschemas migriert. Jede Anwendung, die nur unter Windows Vista und höher ausgeführt wird, sollte GetNumberFormatEx verwenden.
 

Syntax

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

Parameter

[in] Locale

Gebietsschemabezeichner , der das Gebietsschema angibt. Sie können das MAKELCID-Makro verwenden, um einen Gebietsschemabezeichner zu erstellen oder einen der folgenden vordefinierten Werte zu verwenden.

[in] dwFlags

Flags, die den Vorgang der Funktion steuern. Die Anwendung muss diesen Parameter auf 0 festlegen, wenn lpFormat nicht auf NULL festgelegt ist. In diesem Fall formatiert die Funktion die Zeichenfolge mithilfe von Benutzerüberschreibungen in das Standardnummernformat für das Gebietsschema. Wenn lpFormat auf NULL festgelegt ist, kann die Anwendung LOCALE_NOUSEROVERRIDE angeben, um die Zeichenfolge mit dem Standardnummernformat des Systems für das angegebene Gebietsschema zu formatieren.

Vorsicht Die Verwendung von LOCALE_NOUSEROVERRIDE wird dringend abgeraten, da benutzereinstellungen deaktiviert werden.
 

[in] lpValue

Zeiger auf eine NULL-endende Zeichenfolge, die die zu formatende Zahlenzeichenfolge enthält. Diese Zeichenfolge darf nur die folgenden Zeichen enthalten. Alle anderen Zeichen sind ungültig. Die Funktion gibt einen Fehler zurück, wenn die durch lpValue angegebene Zeichenfolge von diesen Regeln abweicht.

  • Zeichen "0" bis "9".
  • Ein Dezimaltrennzeichen (Punkt), wenn die Zahl ein Gleitkommawert ist.
  • Ein Minuszeichen an der ersten Zeichenposition, wenn die Zahl ein negativer Wert ist.

[in, optional] lpFormat

Zeiger auf eine NUMBERFMT-Struktur , die Zahlenformatierungsinformationen enthält, wobei alle Member auf die entsprechenden Werte festgelegt sind. Wenn dieser Parameter nicht auf NULL festgelegt ist, verwendet die Funktion das Gebietsschema nur für Formatierungsinformationen, die nicht in der -Struktur angegeben sind, z. B. den gebietsschemaspezifischen Zeichenfolgenwert für das negative Vorzeichen.

[out, optional] lpNumberStr

Zeiger auf einen Puffer, in dem diese Funktion die formatierte Zahlenzeichenfolge abruft.

[in] cchNumber

Größe in TCHAR-Werten für den durch lpNumberStr angegebenen Zahlenzeichenfolgenpuffer. Alternativ kann die Anwendung diesen Parameter auf 0 festlegen. In diesem Fall gibt die Funktion die erforderliche Größe für den Zahlenzeichenfolgenpuffer zurück und verwendet nicht den lpNumberStr-Parameter .

Rückgabewert

Gibt die Anzahl der TCHAR-Werte zurück, die im Puffer abgerufen werden, der durch lpNumberStr angegeben ist, wenn dies erfolgreich ist. Wenn der cchNumber-Parameter auf 0 festgelegt ist, gibt die Funktion die Anzahl der Zeichen zurück, die zum Speichern der formatierten Zahlenzeichenfolge erforderlich sind, einschließlich eines abschließenden NULL-Zeichens.

Die Funktion gibt 0 zurück, wenn sie nicht erfolgreich ist. Um erweiterte Fehlerinformationen zu erhalten, kann die Anwendung GetLastError aufrufen, wodurch einer der folgenden Fehlercodes zurückgegeben werden kann:

  • ERROR_INSUFFICIENT_BUFFER. Eine angegebene Puffergröße war nicht groß genug, oder sie wurde fälschlicherweise auf NULL festgelegt.
  • ERROR_INVALID_FLAGS. Die für Flags angegebenen Werte waren ungültig.
  • ERROR_INVALID_PARAMETER. Jeder der Parameterwerte war ungültig.
  • ERROR_OUTOFMEMORY. Es war nicht genügend Speicher verfügbar, um diesen Vorgang abzuschließen.

Hinweise

Diese Funktion kann Daten aus benutzerdefinierten Gebietsschemas abrufen. Es ist nicht garantiert, dass die Daten von Computer zu Computer oder zwischen Ausführungen einer Anwendung identisch sind. Wenn Ihre Anwendung Daten beibehalten oder übertragen muss, finden Sie weitere Informationen unter Verwenden persistenter Gebietsschemadaten.

Wenn die ANSI-Version dieser Funktion mit einem reinen Unicode-Gebietsschemabezeichner verwendet wird, kann die Funktion erfolgreich ausgeführt werden, da das Betriebssystem die Systemcodepage verwendet. Jedoch werden Zeichen, die auf der Systemcodepage nicht definiert sind, in der Zeichenfolge als Fragezeichen (?) angezeigt.

Hinweis

Der winnls.h-Header definiert GetNumberFormat als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile winnls.h (windows.h einschließen)
Bibliothek Kernel32.lib
DLL Kernel32.dll

Siehe auch

GetNumberFormatEx

NUMBERFMT

Unterstützung für landessprachliche Sprachen

Unterstützungsfunktionen für nationalsprachliche Sprachen