Zahlenformatzeichenketten

Im vorherigen Abschnitt haben wir Platzhalter für Zeichenketten kennengelernt und zwei Schreibweisen erlernt. Neben diesen beiden Varianten unterstützt C# zudem komplexere Formatierungsregeln.

Grundlegende Syntax für Formatplatzhalter

{Index,Ausrichtung:Format}
1. index (Index)

Index / interpolierte Variable, Pflichtfeld

Klassische numerische Platzhalter: Console.WriteLine(„{0}“, 123); fügt den Wert 123 an die Stelle {0} ein

Zeichenketten-Interpolation mit $"": Variablennamen ohne numerischen Index direkt schreiben, Beispiel Console.WriteLine($“Tom is {age} years old“)

Code-Beispiel

int money = 1000;
Console.WriteLine("Ursprünglicher Wert: {0}", money);
Console.WriteLine("Währungsformat: {0:C}", money);
Console.WriteLine("Rechtsbündige Währung mit 10 Zeichen Breite: |{0,10:C}|", money);Code-Sprache: JavaScript (javascript)
Ursprünglicher Wert: 1000
Währungsformat: $1,000.00
Rechtsbündige Währung mit 10 Zeichen Breite: | $1,000.00|

Entsprechende Schreibweise mit Interpolation

int money = 500;
Console.WriteLine($"Ursprünglicher Wert: {money}");
Console.WriteLine($"Währungsformat: {money:C}");
Console.WriteLine($"Rechtsbündige Währung mit 10 Zeichen Breite: |{money,10:C}|");Code-Sprache: JavaScript (javascript)
2. alignment (Ausrichtung)

Ausrichtungsspezifizierer, optional, durch Komma , abgetrennt

Zweck: Steuerung der minimalen Ausgabebreite und der horizontalen Ausrichtung

Beispiel: Console.WriteLine(„{0,10}“, 123); // Belegt 10 Zeichen, Zahl wird rechtsbündig dargestellt

Man erkennt viele Leerzeichen links von 123. Die Zahl 10 gibt eine Gesamtbreite von zehn Zeichen vor; links von 123 werden sieben Leerzeichen ergänzt, um eine Rechtsbündigkeit zu erzeugen.

Positive Zahl: Rechtsbündig, ungenutzte Breite links mit Leerzeichen auffüllen Beispiel: {0,10} → 10 Zeichen Breite, Zahl rechtsbündig

Negative Zahl: Linksbündig, ungenutzte Breite rechts mit Leerzeichen auffüllen Beispiel: {0,-10} → 10 Zeichen Breite, Zahl linksbündig

Wir ändern den Code wie folgt

Console.WriteLine("{0,-10}", 123);  // Nutzt 10 Zeichen Breite, negativer Wert bedeutet linksbündigCode-Sprache: JavaScript (javascript)

Leerzeichen lassen sich schlecht erkennen, deshalb fügen wir vertikale Striche als Begrenzer hinzu

Console.WriteLine("|{0,-10}|", 123);
Console.WriteLine("|{0,10}|", 456);Code-Sprache: JavaScript (javascript)

Mit vertikalen Begrenzungsstrichen ist das Verhalten eindeutig: 10 steht für eine feste Breite von zehn Zeichen, negative Werte rücken links aus, positive rechts; freie Stellen werden mit Leerzeichen aufgefüllt.

Die äquivalente Schreibweise mit Zeichenketten-Interpolation lautet:

int one = 123;
int two = 456;
Console.WriteLine($"|{one,-10}|");
Console.WriteLine($"|{two,-10}|");Code-Sprache: JavaScript (javascript)
3. format (Formatangabe)

Formatfeld, optional, durch Doppelpunkt : abgetrennt

Steuert die Zahlenanzeige: Währung, Festkommazahlen, wissenschaftliche Notation, Hexadezimalwerte und mehr

Aufbau des Formatfelds :Axx

  • : muss direkt am Platzhalter angehängt werden, keine Leerzeichen dazwischen
  • A: Einbuchstabiger Formatbezeichner (9 integrierte Standardformate, teilweise groß-/kleinschreibungsempfindlich)
  • xx: Genauigkeitsangabe (optional, 1–2 Ziffern, Bedeutung abhängig vom Formatbuchstaben)
// F4: Festkomma-Format mit vier Nachkommastellen
Console.WriteLine("{0:F4}", 12.345678);

// Entsprechende Interpolationsschreibweise
Console.WriteLine($"{12.345678:F4}");Code-Sprache: JavaScript (javascript)

Weitere Demonstrationsbeispiele

double myDouble = 12.345678;
Console.WriteLine("{0,-10:G} -- Allgemein", myDouble);      // 12.345678 -- Allgemein
Console.WriteLine("{0,-10} -- Standard", myDouble);         // 12.345678 -- Standard
Console.WriteLine("{0,-10:F4} -- Festkomma", myDouble);   // 12.3457  -- Festkomma
Console.WriteLine("{0,-10:C} -- Währung", myDouble);     // $12.35    -- Währung
Console.WriteLine("{0,-10:E3} -- Wissenschaftliche Notation", myDouble);//1.235E+001 -- Wissenschaftliche Notation
Console.WriteLine("{0,-10:x} -- Hexadezimal-Ganzzahl", 1194719);   // 123adf    -- Hexadezimal-GanzzahlCode-Sprache: JavaScript (javascript)

Übersichtstabelle der 9 standardmäßigen Zahlenformatbezeichner

KennzeichnungNameFunktionBedeutung der GenauigkeitAusgabebeispiel
C/cCurrency WährungLokales Währungssymbol anzeigenAnzahl Nachkommastellen{0:C} 12,5 → $12.50
D/dDecimal DezimalganzzahlNur für int, fehlende Stellen mit führenden Nullen auffüllenMindestanzahl an Ziffern{0:D4} 12 → 0012
F/fFixed-point FestkommaFeste Anzahl NachkommastellenZu behaltende Nachkommastellen{0:F4} 12,345678 →12.3457
G/gGeneral AllgemeinformatAutomatisch Festkomma oder Exponentialschreibweise, StandardformatAnzahl signifikanter Ziffern{0:G4} 12,345678 →12.35
X/xHexadecimal Hexadezimal (groß-/kleinschreibungsempfindlich)Ausgabe Hexadezimal, X groß, x kleinMindestanzahl an Ziffern{0:x} 180026 → 2bf3a
N/nNumber Zahl mit TausendertrennzeichenTrennzeichen alle drei Ziffern einfügenAnzahl Nachkommastellen{0:N2} 12345678,54321 →12,345,678.54
P/pPercent ProzentsatzWert ×100 mit angehängtem %-ZeichenAnzahl Nachkommastellen{0:P2} 0,1221897 →12,22 %
R/rRound-trip Rundtrip-FormatVerlustfreie Rückumwandlung zum Originalwert nach FormatierungGenauigkeitsangabe wird ignoriert{0:R} 1234,21897 →1234.21897
E/eScientific Wissenschaftliche Notation (groß-/kleinschreibungsempfindlich)Exponentialschreibweise, E groß, e kleinNachkommastellen der Mantisse{0:e4}12,3456789 →1.2346e+001

Zahlenformatzeichenketten

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert