Skip to main content

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

AttributeValueRequired/OptionalDescription
namenameOptionalSpecifies a name for this format
decimal-separatorcharOptionalSpecifies the decimal point character. Default is .
grouping-separatorcharOptionalSpecifies the thousands separator character. Default is ,
infinitystringOptionalSpecifies the string used to represent infinity. Default is Infinity
minus-signcharOptionalSpecifies the character to represent negative numbers. Default is -
NaNstringOptionalSpecifies the string used when the value is not a number. Default is NaN
percentcharOptionalSpecifies the percentage sign character. Default is %
per-millecharOptionalSpecifies the per thousand sign character. Default is
zero-digitcharOptionalSpecifies the digit zero character. Default is 0
digitcharOptionalSpecifies the character used to indicate a place where a digit is required. Default is #
pattern-separatorcharOptionalSpecifies 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