Format-Definitionen für numerische Daten

Für die Formatierung von Datenbank-Spalten mit Zahlen als Datentyp (Integer, Decimal, Float und Money) stehen zwei Möglichkeiten bereit: Es können benutzerdefinierte Zahlenformatmuster oder ein einzelnes der vordefinierten numerischen Formatbezeichner genutzt werden. Erstere bestehen aus einer Folge von numerischen Formatzeichen, welche Positionen von Ziffern, Dezimal- und Tausendertrennzeichen und Symbolen für positive bzw. negative Zahlen festlegen. Dezimal-, Tausendertrennzeichen und andere Ausdrücke werden später durch die zugeordneten Werte der Ausgabekultur ersetzt. Zweitere bestehen aus Kombinationen von Formatbezeichnern und vordefinierten Mustern, die teils für alle Kulturen einheitlich (wissenschaftliche Zahldarstellung), teils kulturabhängig (Währung) sind. Hierbei ist nicht nur das Währungssymbol, sondern auch die Reihenfolge gemeint. Ein 'Preis' von 10.80 wird einmal als 10,80 €, ein anderes Mal als $10.80 ausgegeben.

Beachten Sie bei der folgenden Darstellung, daß immer der Punkt ('.') als Meta-Dezimaltrenner, das Komma (',') als Meta-Tausendertrennzeichen verwendet wird. Dies sagt nichts darüber aus, was die Ausgabekultur tatsächlich als Dezimal- bzw. Tausendertrenner für diese Werte einsetzt.

Vordefinierte Formatzeichen für benutzerdefinierte Zahlenformatmuster

Die folgende Liste umfaßt alle Ausdrücke, mit welchen benutzerdefinierte Zahlenformatmuster erzeugt werden können. Sobald ein Zahlenformatmuster nicht aus einem der weiter unten folgenden Formatbezeichner, gefolgt von maximal zwei Ziffern, besteht, wird das Muster als benutzerdefiniertes Muster interpretiert. Excel-Nutzern dürften diese Ausdrücke bekannt sein.

Format­zeichenNameBeschrei­bung
0Platzhalter für die PflichtanzeigeEntweder wird eine Ziffer aus der darzustellenden Zahl oder eine Null ausgegeben. Damit lassen sich führende und nachfolgende Nullen erzwingen, welche den Wert nicht verändern.

'000' angewandt auf '5' erzeugt '005'
'000.00' angewandt auf '90.3' erzeugt '090.30'

#Platzhalter für optionale ZiffernWenn eine signifikante Ziffer zur Verfügung steht, so wird diese ausgegeben, ansonsten wird nichts ausgegeben. Es werden jedoch keine signifikanten Stellen vor dem Dezimal­trenn­zeichen entfernt.

## angewandt auf '5', '155', '155.30' erzeugt '5', '155', '155'
##,## angewandt auf '5', '155', '155.30' erzeugt '5', '155', '155,3'
#0,0# angewandt auf '5', '155', '155.30' erzeugt '5.0', '155.0', '155,3'

.Dezimal­trennzeichenDas erste Auftreten von '.' legt fest, an welcher Stelle die Dezimal­ziffern beginnen, alle späteren Verwendungen werden ignoriert. Welches Zeichen tatsächlich ausgegeben wird, hängt von der gewählten Kultur ab.
,Tausender­trennzeichen(1) Wird ',' mit umgebenden 0/# notiert und folgt das Dezimal­trennzeichen rechts davon, dann werden in der Ausgabe Tausender­trennzeichen zwischen jede Gruppe von drei Ziffern eingefügt.

(2) Steht das Tausender­trennzeichen am Schluß einer Format­zeichenfolge oder direkt vor dem Dezimal­trenner, dann wird die Zahl durch 1000 geteilt (skaliert) und in dieser Form ausgegeben. Mehrfache Tausender­trennzeichen führen zu mehrfacher Division.

'#,###.00' und '5320.50' erzeugt '5,320.50'
'0,' und '2400', '7200800' erzeugt '2', '7200'
'0,,' und '7200800' erzeugt '7'

%Prozent­platzhalterEin Prozent­zeichen führt dazu, daß die auszugebende Zahl mit 100 multipliziert wird und das Prozent­zeichen an der Stelle eingefügt wird, an welcher der Prozent­platzhalter im Muster notiert ist.
E0, E+0, E-0, e0, e+0, e-0wissen­schaftliche NotationFormatiert die Ausgabe in der Expotential­darstellung. Die Zahl der Nullen legt die Mindestzahl der Ziffern für den Exponenten fest, die gegebenenfalls aufgefüllt werden. 'E+' und 'e+' fordern, daß der Exponent immer mit Vorzeichen (+/-) notiert wird, bei allen anderen Formaten wird nur das negative Vorzeichen eingefügt.
'Abc', "Abc"Zeichen­folgen­literalGequotete Ausdrücke werden direkt in die Ausgabe eingefügt.
;Abschnitts­trenn­zeichenDas Formatmuster kann aus bis zu drei eigenständigen Formatmustern mittels ';' zusammengefügt werden. Bei zwei definierten Abschnitten gilt der erste für nichtnegative Zahlen (+ 0), der zweite für negative Zahlen. Bei drei definierten Abschnitten gilt der erste für positive, der zweite für negative und der dritte Abschnitt für die Null.

'#,00;(-)#,00;Zero' und '5', '-3.8' und '0'
erzeugt '5.00', '(-)3.80' und 'Zero'

Sonstige ZeichenAlle anderen Zeichen werden unverändert übernommen.

Liste der vordefinierten numerischen Formatbezeichner

Die Kürzel der folgenden Liste können entweder direkt oder in der Form xAA verwendet werden, wobei x für ein Kürzel aus der folgenden Liste und A für eine Zahl zwischen 0 und 9 steht. Beispiele für gültige Werte sind c, c5, c15, f20. Die maximal zwei Ziffern legen die Zahl der Nachkommastellen fest, fehlen sie, so wird ein Standardwert genutzt. Alle Kürzel werden relativ zur Ausgabekultur interpretiert, so daß sich Dezimal- und Tausendertrenner sowie Währungszeichen aus der Kultur ergeben.

Format­bezeichnerNameBeschreibung
c, CWährung (currency)Darstellung als Währung. Die konkrete Darstellung ist bei der jeweiligen spezifischen Kultur definiert, es werden Ausdrücke wie ($n), -$n oder $-n verwendet. 'n' stellt die Zahl, '$' das Währungssymbol und '-' das 'NegativeSign'-Symbol dar.
d, DDecimalDieses, nur für Integer-Datentypen unterstützte Format, stellt der Ganzzahl so viele Nullen vorweg, bis die durch 'AA' festgelegte Anzahl von Stellen erreicht ist.

Die Zahl 15 wird mit 'd5' als '00015' ausgegeben.

135 mit d10 erzeugt '0000000135'.

e, EWissen­schaflich (expotentiell)Die Zahl wird in die Darstellung 'd.dddE+ddd' konvertiert. Es wird immer genau eine Ziffer vor dem Dezimaltrennzeichen notiert, die Zahl der Nachkomma­stellen wird durch 'AA' festgelegt. Der 10-Exponent umfaßt immer mindestens 3 Ziffern. Das 'E' wird klein geschrieben, falls das 'e' als Kürzel genutzt wird.
f, FFestkomma (fixed)Die Zahl wird als 'ddd.ddd' ausgegeben, die Genauig­keitsangabe legt die Zahl der Nachkomma­stellen fest.
g, GAllgemein (global)Die Zahl wird, abhängig von ihrem Wert und der festgelegten Genauigkeit, in eine möglichst kompakte Festkomma- oder Expotential­darstellung transferiert. Falls der Exponent in der Expotential­darstellung größer als -5 und kleiner als die Genauigkeitsangabe ist, wird die Festkomma-Darstellung gewählt, ansonsten wird die Expotential­darstellung ausgegeben. Hier entscheidet 'g' bzw. 'G' über die Verwendung von 'e' bzw. 'E'.
n, NZahl (numerische Darstellung)Die Zahl wird in der Form 'd,ddd,ddd.dd' ausgegeben, das Tausender­trennzeichen trennt Blöcke von je drei Vorkommastellen ab.
p, PProzentDie Zahl wird mit 100 multipliziert und mit einem Prozentzeichen dargestellt.

Bei der Verwendung von Zahlformaten wurde innerhalb des Projektes server-daten eine wesentliche Designentscheidung getroffen: Es ist nicht möglich, eigenständig Dezimal- und Tausendertrennzeichen festzulegen. Die Darstellung dieser Zeichen richtet sich entweder nach der Spracheinstellung des Clientbrowsers oder kann durch die Wahl einer geeignet erscheinenden Ausgabekultur mithilfe des sd:culture -Attributes fixiert werden.

Sind innerhalb von Sql-Abfragen numerische Ausdrücke erforderlich, so ist immer die 'en-US'-Version mit dem Punkt als Dezimaltrennzeichen und dem Verzicht auf Tausendertrennzeichen zu nutzen.


Kontaktformular:

Schreiben Sie mir und wir bauen gemeinsam Ihre neue Web-Datenbank!

Die Erläuterungen zum Datenschutz habe ich gelesen und stimme diesen zu.

© 2003-2019 Jürgen Auer, Berlin.