Skip to content

XSLT <xsl:decimal-format>

How to customize number formatting in XSLT using <xsl:decimal-format> for decimal separators, grouping symbols, and locale-specific number formatting with format-number().

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
Navigation