Dieser Artikel hier soll im Laufe der Zeit für mich (und ggf. andere) eine schnell zu findende Kurzreferenz für Zeichenkettenformatierung in C# werden.
In C/C++ gibt es printf()
und verwandte Funktionen um verschiedene Datentypen formatiert in Zeichenfolgen umzuwandeln. In .NET/C# sind es string.Format()
, object.ToString()
und verwandte Funktionen, die verwendet werden um dies zu erreichen.
Tipps
1.) Nachkommastellen festlegen
Um die Nachkommastellen beim Umwandeln von Fließkommazahlen (decimal
, double
, float
) zu beeinflussen, einfach das Präfix „:F“ gefolgt von der Anzahl der Nachkommastellen angeben.
Beispiel:
decimal x = 0.00m; double y = 1.38; // Variablen x und y auf jeweils // 2 Nachkommastellen formatieren. string s1 = string.Format( "{0:F2}", x ); string s2 = string.Format( "{0:F2}", y );
2.) Vorkommastellen festlegen und mit Nullen auffüllen
Um die Vorkommastellen beim Umwandeln von Ganzzahlen (z.B. int
, long
) zu beeinflussen und auf eine feste Anzahl stellen zu bringen, einfach das Präfix „:“ gefolgt von der gewünschten Anzahl als Nullen („0“) verwenden.
Beispiel:
int i = 19; // Variable i auf 5 Stellen formatieren, // fehlende Stellen mit "0" auffüllen. string s1 = string.Format( "{0:00000}", i );
3.) Integerzahlen hexadezimal mit führenden Nullen darstellen
Um ganze Zahlen hexadezimal mit einer festen Anzahl Stellen zu formatieren einfach ein „X“ gefolgt von der gewünschten Anzahl der Nullen (z.B. „4“) schreiben.
Beispiel:
int i = 234; // Schreibt "00EA" in s1. string s1 = i.ToString( "X4" );
Beispiel (alternativ zum vorherigen Beispiel, gleiches Ergebnis):
int i = 234; // Schreibt "00EA" in s1. string s1 = string.Format( "{0:X4}", i );
Internet-Ressourcen
Folgende Artikel/Seiten sind hilfreich:
- „Custom String Formatting in .NET“ auf CodeProject.com.
- „Anpassen von Formatzeichenfolgen“ in der MSDN Library.
- „Strings formatieren mit C#“ mit weiteren Beispielen.
Den Schreibfehler findest Du sicher selber;-)
Andere Sache: Deine Story ist fertig, wieso kann ich Dir kein Trackback senden?
Ich bin leider Trackback-Laie… 🙁
Den Schreibfehler suche ich mal.
Keine Schreibfehler gefunden, selbst mit Microsoft Office Word 2003-Rechtschreibprüfung nicht :-(.
hi-hi
Ja, ich nehme auch Veräppelungen ernst! So bin ich.
da gibts dann auch noch die möglichkeit mit „###.##“ oder „000.00“
Ist der Punkt dann auch mehrsprachig also wird im deutschen zum Komma?
War mir sehr hilfreich. Bedankt.
gez.
c#-Rookie Vanden
Wie ist es, wenn man Vor- und Nachkommastellen gleichzeitig festlegen möchte.
string s1 = string.Format( „{0:00000:F2}“, i );
geht nicht 🙂