format-number-Funktion

Konvertiert Zahlen in Zeichenfolgen. Die Konvertierung ist das Ergebnis der Formatierung im ersten Argument (number) angegebenen Zahl, wobei das im zweiten Argument (string) angegebene Format verwendet und die definierten Regeln im benannten Dezimalformat aus dem dritten optionalen Argument (string) angewendet werden. Wenn das dritte Argument, der Name des Dezimalformats, ausgelassen wird, wird das Standarddezimalformat verwendet. Diese Funktion und das <xsl:decimal-format>-Element sollen zusammen verwendet werden.

string format-number(number, string, string?)

Hinweise

Das erste Argument gibt den Eingabewert an. Beispiel: die Zahl 5351.

Das zweite Argument gibt das Formatierungsmuster an. Beispiel: die Zeichenfolge '###.###,00'.

Das dritte Argument ist ein optionaler Name des Dezimalformats. Dies ermöglicht das Verwenden eines beliebigen Zeichens in der Formatierungsmuster-Zeichenfolge. Dem Zeichen wird eine Rolle im <xsl:decimal-format>-Element zugewiesen. Ein häufig verwendeter Dezimalformatname ist european, mit dem die Rolle des Kommas und des Punkts aus dem Standardwert umgekehrt wird.

Im Formatierungsmuster werden die folgenden Zeichen unterstützt: "."; ","; "#","%","0" und das Unicode-Promillezeichen (#x2030). Mithilfe des "#"-Zeichens werden ganze Zahlen beschrieben. Mit den Zeichen "." und "," werden Position und Art der Interpunktion beschrieben. Mit dem Zeichen "0" wird eine 0 (null) vor und nach dem Zeichen "." platziert, wenn durch die Positionierung andernfalls kein Numeral angezeigt werden würde, beispielsweise 00.3 oder 3.00. Beim Abschneiden der Stellen rechts neben dem Dezimaltrennzeichen wird die Zahl gerundet. Die Zahl links neben dem Dezimaltrennzeichen wird nie abgeschnitten.

Sowohl der Eingabewert als auch die Formatierungsmuster-Zeichenfolge müssen vorhanden sein. Andernfalls wird ein Fehler ausgelöst. Wenn der Eingabewert nicht mit den Regeln in der number()-Funktion in eine Zahl umgewandelt werden kann, gibt die format-number-Funktion einen NaN-Wert zurück. Wenn die Formatierungsmuster-Zeichenfolge keine gültige Musterzeichenfolge ist, gibt die Funktion den Eingabewert unverändert zurück.

Der Dezimalformatname (falls vorhanden) stellt den Namen eines Dezimalformats entsprechend der Angabe in einem <xsl:decimal-format>-Element dar. Der Name des Dezimalformats muss ein gekennzeichneter Name (QName) sein. Wenn Sie einen Dezimalformatnamen in der Funktion angeben, muss im Stylesheet ein <xsl:decimal-format>-Element mit demselben Namen vorhanden sein.

Das <xsl:decimal-format>-Element kann das Standardmuster für die Zahlenformatierung überschreiben. Das <xsl:decimal-format>-Element folgt dem Muster für Formatierungsspezifizierer der java.text.DecimalFormat-Klasse. Beispiele für die Verwendung der format-number-Funktion mit <xsl:decimal-format> finden Sie unter dem <xsl:decimal-format>-Element.

Beispiele

Die folgenden XSLT-Zeilen geben "24.535,20" zurück:

<xsl:decimal-format name="european" decimal-separator=',' grouping-separator='.' />
<xsl:value-of select="format-number(24535.2, '###.###,00', 'european')"/>

Der folgende Funktionsaufruf gibt "5,351" zurück:

format-number(5351,"#,###")

Der folgende Funktionsaufruf gibt "5351,00" zurück:

format-number(5351, "#.00")

Der folgende Funktionsaufruf gibt "53,5100" zurück:

format-number(53.51, "#.0000")

Der folgende Funktionsaufruf gibt "0053,5100" zurück:

format-number(53.51, "0000.0000")

Der folgende Funktionsaufruf gibt "0053,51" zurück:

format-number(53.51, "0000.####")

Der folgende Funktionsaufruf gibt "53,6" zurück:

format-number(53.56, "0.0")

Ein vollständiges Beispiel für das Anwenden dieser Funktion auf XML-Daten unter Verwendung eines XSLT-Stylesheets finden Sie unter Beispiel für <xsl:decimal-format>.

Siehe auch

Referenz

Referenz zu XML-Datentypen

<xsl:decimal-format>-Element