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 dazwischenA: 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
| Kennzeichnung | Name | Funktion | Bedeutung der Genauigkeit | Ausgabebeispiel |
|---|---|---|---|---|
| C/c | Currency Währung | Lokales Währungssymbol anzeigen | Anzahl Nachkommastellen | {0:C} 12,5 → $12.50 |
| D/d | Decimal Dezimalganzzahl | Nur für int, fehlende Stellen mit führenden Nullen auffüllen | Mindestanzahl an Ziffern | {0:D4} 12 → 0012 |
| F/f | Fixed-point Festkomma | Feste Anzahl Nachkommastellen | Zu behaltende Nachkommastellen | {0:F4} 12,345678 →12.3457 |
| G/g | General Allgemeinformat | Automatisch Festkomma oder Exponentialschreibweise, Standardformat | Anzahl signifikanter Ziffern | {0:G4} 12,345678 →12.35 |
| X/x | Hexadecimal Hexadezimal (groß-/kleinschreibungsempfindlich) | Ausgabe Hexadezimal, X groß, x klein | Mindestanzahl an Ziffern | {0:x} 180026 → 2bf3a |
| N/n | Number Zahl mit Tausendertrennzeichen | Trennzeichen alle drei Ziffern einfügen | Anzahl Nachkommastellen | {0:N2} 12345678,54321 →12,345,678.54 |
| P/p | Percent Prozentsatz | Wert ×100 mit angehängtem %-Zeichen | Anzahl Nachkommastellen | {0:P2} 0,1221897 →12,22 % |
| R/r | Round-trip Rundtrip-Format | Verlustfreie Rückumwandlung zum Originalwert nach Formatierung | Genauigkeitsangabe wird ignoriert | {0:R} 1234,21897 →1234.21897 |
| E/e | Scientific Wissenschaftliche Notation (groß-/kleinschreibungsempfindlich) | Exponentialschreibweise, E groß, e klein | Nachkommastellen der Mantisse | {0:e4}12,3456789 →1.2346e+001 |
Zahlenformatzeichenketten