none
Aus der MSDN Hotline: .NET Framework: Zahlen formatieren mit String.Format - Zahl als Postleitzahl (PLZ) formatieren RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen,

    heute wurde uns bei der MSDN Hotline unter anderem folgende Frage gestellt: 

    wie formatiere ich eine Zahl so, dass diese immer als Postleitzahl (sprich 5 stellig) ausgegeben wird, selbst wenn die Zahl eine führende 0 braucht. Ein Beispiel: 4567 soll als 04567 dargestellt werden.

    Unsere Antwort bzw. unser Lösungsvorschlag darauf war:

    Informationen zu den Formatierungsmöglichkeiten von Zahlen mittels String.Format finden Sie unter http://msdn.microsoft.com/de-de/library/dwhawy9k.aspx
    und http://msdn.microsoft.com/de-de/library/0c899ak8.aspx.

    Für das konkrete Beispiel mit der Postleitzahl sollen immer 5 Stellen dargestellt werden, evtl. muss also noch ein führende 0 zur ursprünglichen Zahl hinzukommen. Dafür gibt es den sogenannten 0-Platzhalter. Unter dem letzten Link oben finden Sie dazu folgende Beschreibung:

    "Wenn der zu formatierende Wert über eine Ziffer an der Stelle verfügt, an der die '0' in der Formatzeichenfolge steht, wird diese Ziffer in die Ergebniszeichenfolge kopiert; andernfalls erscheint eine '0' in der Ergebniszeichenfolge. Die Positionen der '0', die am weitesten links vor dem Dezimaltrennzeichen steht, und der '0', die am weitesten rechts hinter dem Dezimaltrennzeichen steht, bestimmen den Bereich der Ziffern, die immer in der Ergebniszeichenfolge enthalten sind.

    Mit dem Bezeichner "00" wird der Wert immer auf die direkt dem Dezimaltrennzeichen vorausgehende Zahl aufgerundet. Eine Formatierung des Werts 34.5 mit "00" ergibt z. B. den Wert 35."

    Als Code könnte man folgendermaßen eine Zahl als Postleitzahl darstellen:

    plz.ToString("00000", CultureInfo.InvariantCulture);
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    
    


    Achtung: für das Beispiel mit der Postleitzahl oder ähnlichen Problemen kann nicht der Ziffernplatzhalter "#" verwendet werden, wie entsprechend aus der MSDN Dokumentation hervorgeht:

    "Beachten Sie, dass dieser Bezeichner nie das '0'-Zeichen anzeigt, wenn es sich nicht um eine signifikante Ziffer handelt, auch wenn '0' die einzige Ziffer in der Zeichenfolge ist. Das '0'-Zeichen wird angezeigt, wenn es sich um eine signifikante Ziffer in der angezeigten Zahl handelt."


    Wir hoffen, vielen Besuchern der MSDN Foren durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.

    Viele Grüße,
    Sebastian Crüger
    MSDN Hotline für MSDN Online Deutschland

    Disclaimer:
    Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
    Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline: http://www.msdn-online.de/Hotline 
    MSDN Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!

    Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu Markenzeichen sowie die allgemein gültigen Informationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN Hotline.
    Freitag, 21. August 2009 13:14