Sql-und-Xml - Home

Server-Daten: Die Web - Datenbank als CRM - Lösung

Kultur-spezifische Ausgaben

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.

FormatzeichenNameBeschreibung
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 Dezimaltrennzeichen 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'
.DezimaltrennzeichenDas erste Auftreten von '.' legt fest, an welcher Stelle die Dezimalziffern beginnen, alle späteren Verwendungen werden ignoriert. Welches Zeichen tatsächlich ausgegeben wird, hängt von der gewählten Kultur ab.
,Tausendertrennzeichen(1) Wird ',' mit umgebenden 0/# notiert und folgt das Dezimaltrennzeichen rechts davon, dann werden in der Ausgabe Tausendertrennzeichen zwischen jede Gruppe von drei Ziffern eingefügt.

(2) Steht das Tausendertrennzeichen am Schluß einer Formatzeichenfolge oder direkt vor dem Dezimaltrenner, dann wird die Zahl durch 1000 geteilt (skaliert) und in dieser Form ausgegeben. Mehrfache Tausendertrennzeichen 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'
%ProzentplatzhalterEin Prozentzeichen führt dazu, daß die auszugebende Zahl mit 100 multipliziert wird und das Prozentzeichen an der Stelle eingefügt wird, an welcher der Prozentplatzhalter im Muster notiert ist.
E0, E+0, E-0, e0, e+0, e-0wissenschaftliche NotationFormatiert die Ausgabe in der Expotentialdarstellung. 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"ZeichenfolgenliteralGequotete Ausdrücke werden direkt in die Ausgabe eingefügt.
;AbschnittstrennzeichenDas 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.

FormatbezeichnerNameBeschreibung
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, EWissenschaflich (expotentiell)Die Zahl wird in die Darstellung 'd.dddE+ddd' konvertiert. Es wird immer genau eine Ziffer vor dem Dezimaltrennzeichen notiert, die Zahl der Nachkommastellen 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 Genauigkeitsangabe legt die Zahl der Nachkommastellen fest.
g, GAllgemein (global)Die Zahl wird, abhängig von ihrem Wert und der festgelegten Genauigkeit, in eine möglichst kompakte Festkomma- oder Expotentialdarstellung transferiert. Falls der Exponent in der Expotentialdarstellung größer als -5 und kleiner als die Genauigkeitsangabe ist, wird die Festkomma-Darstellung gewählt, ansonsten wird die Expotentialdarstellung 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 Tausendertrennzeichen 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.

© 2003-2009 Jürgen Auer, Berlin.