XSLT <xsl:decimal-format>
XSLT <xsl:decimal-format>
The <xsl:decimal-format>
element defines the characters and symbols to be used when converting numbers into strings,
with the format-number()
function.
All countries do not use the same characters for separating the decimal part from the integer part, and for grouping
digits. With the <xsl:decimal-format>
element you can change special characters to other symbols.
This element is a top level element.
The format-number()
function can refer to the <xsl:decimal-format>
element by name.
Syntax
<xsl:decimal-format
name="name"
decimal-separator="char"
grouping-separator="char"
infinity="string"
minus-sign="char"
NaN="string"
percent="char"
per-mille="char"
zero-digit="char"
digit="char"
pattern-separator="char"/>
Attributes
Attribute | Value | Required/Optional | Description |
---|---|---|---|
name | name | Optional | Specifies a name for this format |
decimal-separator | char | Optional | Specifies the decimal point character. Default is . |
grouping-separator | char | Optional | Specifies the thousands separator character. Default is , |
infinity | string | Optional | Specifies the string used to represent infinity. Default is Infinity |
minus-sign | char | Optional | Specifies the character to represent negative numbers. Default is - |
NaN | string | Optional | Specifies the string used when the value is not a number. Default is NaN |
percent | char | Optional | Specifies the percentage sign character. Default is % |
per-mille | char | Optional | Specifies the per thousand sign character. Default is ‰ |
zero-digit | char | Optional | Specifies the digit zero character. Default is 0 |
digit | char | Optional | Specifies the character used to indicate a place where a digit is required. Default is # |
pattern-separator | char | Optional | Specifies the character used to separate positive and negative subpatterns in a format pattern. Default is ; |
Example
The following example shows how to format European currency (note that the third argument of format-number() refers to
the element name <xsl:decimal-format>
:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:decimal-format name="euro" decimal-separator="," grouping-separator="."/>
<xsl:template match="/">
<xsl:value-of select="format-number(12324.5, '#.###,00', 'euro')"/>
</xsl:template>
</xsl:stylesheet>
And the output is:
12.324,50