NumberFormatInfo-Klasse

Definiert, wie numerische Werte abhängig von der jeweiligen Kultur formatiert und angezeigt werden.

Namespace: System.Globalization
Assembly: mscorlib (in mscorlib.dll)

Syntax

'Declaration
<SerializableAttribute> _
<ComVisibleAttribute(True)> _
Public NotInheritable Class NumberFormatInfo
    Implements ICloneable, IFormatProvider
'Usage
Dim instance As NumberFormatInfo
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public sealed class NumberFormatInfo : ICloneable, IFormatProvider
[SerializableAttribute] 
[ComVisibleAttribute(true)] 
public ref class NumberFormatInfo sealed : ICloneable, IFormatProvider
/** @attribute SerializableAttribute() */ 
/** @attribute ComVisibleAttribute(true) */ 
public final class NumberFormatInfo implements ICloneable, IFormatProvider
SerializableAttribute 
ComVisibleAttribute(true) 
public final class NumberFormatInfo implements ICloneable, IFormatProvider

Hinweise

Diese Klasse enthält u. a. Informationen über Währung, Dezimaltrennzeichen und andere numerische Symbole.

Zum Erstellen einer NumberFormatInfo für eine bestimmte Kultur erstellen Sie eine CultureInfo für diese Kultur, und rufen Sie die CultureInfo.NumberFormat-Eigenschaft ab. Zum Erstellen einer NumberFormatInfo für die Kultur des aktuellen Threads verwenden Sie die CurrentInfo-Eigenschaft. Zum Erstellen einer NumberFormatInfo für die invariante Kultur verwenden Sie für eine schreibgeschützte Version die InvariantInfo-Eigenschaft oder den NumberFormatInfo-Konstruktor für eine nicht schreibgeschützte Version. Es kann keine NumberFormatInfo für eine neutrale Kultur erstellt werden.

In der Systemsteuerung können über Regionale und Spracheinstellungen (bzw. über Länder-/Regionseinstellungen oder Gebietsschema) einige Werte überschrieben werden, die der aktuellen Kultur von Windows zugeordnet sind. Beispielsweise können Benutzer das Datum in einem anderen Format anzeigen lassen oder eine andere Währung als die Standardwährung dieser Kultur verwenden. Wenn die CultureInfo.UseUserOverride-Eigenschaft auf true festgelegt ist, werden auch die Eigenschaften der Instanzen CultureInfo.DateTimeFormat, CultureInfo.NumberFormat und CultureInfo.TextInfo aus den Benutzereinstellungen abgerufen. Wenn die Benutzereinstellungen nicht mit der Kultur kompatibel sind, die der CultureInfo zugeordnet ist, weil z. B. der ausgewählte Kalender keiner der OptionalCalendars ist, sind die Methodenergebnisse und Eigenschaftenwerte undefiniert.

Numerische Werte werden mithilfe von Standard- oder benutzerdefinierten Mustern formatiert, die in den Eigenschaften einer NumberFormatInfo gespeichert sind. Damit die Darstellungsart eines Werts geändert werden kann, darf die NumberFormatInfo nicht schreibgeschützt sein, sodass benutzerdefinierte Muster in den Eigenschaften gespeichert werden können.

In der folgenden Tabelle sind die Standardformatzeichen für die einzelnen Standardmuster mit der jeweils zugeordneten NumberFormatInfo-Eigenschaft aufgeführt, die zum Ändern des Standardmusters festgelegt werden kann.

Formatzeichen

Beschreibung und zugeordnete Eigenschaften

c, C

Währungsformat. CurrencyNegativePattern, CurrencyPositivePattern, CurrencySymbol, CurrencyGroupSizes, CurrencyGroupSeparator, CurrencyDecimalDigits, CurrencyDecimalSeparator.

d, D

Dezimales Format.

e, E

Wissenschaftliches Format (Exponentialformat).

f, F

Festkommaformat.

g, G

Allgemeines Format.

n, N

Zahlenformat. NumberNegativePattern, NumberGroupSizes, NumberGroupSeparator, NumberDecimalDigits, NumberDecimalSeparator.

r, R

Schleifenformat, das sicherstellt, dass in Zeichenfolgen konvertierte Zahlen denselben Wert haben, wenn wieder in Zahlen konvertiert werden.

x, X

Hexadezimales Format.

Eine DateTimeFormatInfo oder eine NumberFormatInfo kann nicht für neutrale Kulturen, sondern nur für die invariante Kultur oder für spezifische Kulturen erstellt werden. Weitere Informationen zur invarianten Kultur, spezifischen Kulturen und neutralen Kulturen finden Sie in der CultureInfo-Klasse.

Diese Klasse implementiert die ICloneable-Schnittstelle, um die Duplizierung von NumberFormatInfo-Objekten zu ermöglichen. Sie implementiert auch den IFormatProvider, um Anwendungen Formatierungsinformationen zur Verfügung zu stellen.

Beispiel

Das folgende Codebeispiel zeigt, wie eine NumberFormatInfo für eine entsprechende CultureInfo abgerufen wird und wie mithilfe von NumberFormatInfo die Formatierungsinformationen für diese Kultur abgefragt werden.

using System;
using System.Globalization;
using System.Text;

public sealed class App 
{
    static void Main() 
    {
        StringBuilder sb = new StringBuilder();

        // Loop through all the specific cultures known to the CLR.
        foreach (CultureInfo ci in CultureInfo.GetCultures(CultureTypes.SpecificCultures)) 
        {
            // Only show the currency symbols for cultures that speak English.
            if (ci.TwoLetterISOLanguageName != "en") continue;
             
            // Display the culture name and currency symbol.
            NumberFormatInfo nfi = ci.NumberFormat;
            sb.AppendFormat("The currency symbol for '{0}' is '{1}'",
                ci.DisplayName, nfi.CurrencySymbol);
            sb.AppendLine();
        }
        Console.WriteLine(sb.ToString());
    }
}

// This code produces the following output.
//
// The currency symbol for 'English (United States)' is '$'
// The currency symbol for 'English (United Kingdom)' is ''
// The currency symbol for 'English (Australia)' is '$'
// The currency symbol for 'English (Canada)' is '$'
// The currency symbol for 'English (New Zealand)' is '$'
// The currency symbol for 'English (Ireland)' is '?'
// The currency symbol for 'English (South Africa)' is 'R'
// The currency symbol for 'English (Jamaica)' is 'J$'
// The currency symbol for 'English (Caribbean)' is '$'
// The currency symbol for 'English (Belize)' is 'BZ$'
// The currency symbol for 'English (Trinidad and Tobago)' is 'TT$'
// The currency symbol for 'English (Zimbabwe)' is 'Z$'
// The currency symbol for 'English (Republic of the Philippines)' is 'Php'
using namespace System;
using namespace System::Globalization;
using namespace System::Text;

int main()
{
    StringBuilder^ builder = gcnew StringBuilder();

    // Loop through all the specific cultures known to the CLR.
    for each(CultureInfo^ culture in 
        CultureInfo::GetCultures (CultureTypes::SpecificCultures)) 
    {
        // Only show the currency symbols for cultures 
        // that speak English.
        if (culture->TwoLetterISOLanguageName == "en")
        {
            // Display the culture name and currency symbol.
            NumberFormatInfo^ numberFormat = culture->NumberFormat;
            builder->AppendFormat("The currency symbol for '{0}'"+
                "is '{1}'",culture->DisplayName,
                numberFormat->CurrencySymbol);
            builder->AppendLine();
        }
    }
    Console::WriteLine(builder);
}

// This code produces the following output.
//
// The currency symbol for 'English (United States)' is '$'
// The currency symbol for 'English (United Kingdom)' is 'Ј'
// The currency symbol for 'English (Australia)' is '$'
// The currency symbol for 'English (Canada)' is '$'
// The currency symbol for 'English (New Zealand)' is '$'
// The currency symbol for 'English (Ireland)' is '?'
// The currency symbol for 'English (South Africa)' is 'R'
// The currency symbol for 'English (Jamaica)' is 'J$'
// The currency symbol for 'English (Caribbean)' is '$'
// The currency symbol for 'English (Belize)' is 'BZ$'
// The currency symbol for 'English (Trinidad and Tobago)' is 'TT$'
// The currency symbol for 'English (Zimbabwe)' is 'Z$'
// The currency symbol for 'English (Republic of the Philippines)' is 'Php'

Vererbungshierarchie

System.Object
  System.Globalization.NumberFormatInfo

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht gewährleistet.

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

NumberFormatInfo-Member
System.Globalization-Namespace
Decimal
CultureInfo-Klasse

Weitere Ressourcen

Übersicht über Formatierung