Elemento <xsl:decimal-format> do XSLT

Definição e Uso

<xsl:decimal-format> elemento define o caractere e o símbolo a serem usados quando o número é convertido em string através da função format-number().

Não todos os países usam os mesmos caracteres para separar a parte decimal da parte inteira ou para agrupar números. Através do elemento <xsl:decimal-format>, você pode substituir caracteres específicos por outros símbolos.

Este elemento é um elemento de nível superior (top level).

A função format-number() pode ser referenciada pelo nome (name) do elemento <xsl:decimal-format>.

Sintaxe

<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"/>

Atributo

Atributo Valor Descrição
name name Opcional. Especifica um nome para este formato.
decimal-separator char Opcional. Especifica o caractere para o ponto decimal. O padrão é ".".
grouping-separator char Opcional. Especifica o caractere de separação para milhares. O padrão é ",".
infinity string Opcional. Especifica a string usada para representar o infinito. O padrão é "Infinity".
minus-sign char Opcional. Especifica o caractere para o sinal de menos usado para números negativos. O padrão é "-".
NaN string Opcional. Especifica a string usada quando o valor não é um número. O padrão é "NaN".
percent char Opcional. Especifica o caractere para o símbolo de porcentagem. O padrão é "%".
per-mille char Opcional. Especifica o caractere para o símbolo de milhar. O padrão é "‰".
zero-digit char Opcional. Especifica o caractere para o número 0. O padrão é "0".
digit char Opcional. Especifica o caractere, que é usado para indicar onde deve ser usado o número. O padrão é #.
pattern-separator char. Opcional. Especifica o caractere, que é usado para separar os padrões de sinal positivo e negativo no formato. O padrão é ";".

Exemplo

Exemplo 1

O exemplo a seguir mostra como formatar como moeda europeia (por favor, note que o terceiro parâmetro da função format-number() faz referência ao nome do elemento <xsl:decimal-format>):

<?xml version="1.0" encoding="ISO-8859-1"?>
<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(26825.8, '#.###,00', 'euro')"/>
</xsl:template>
</xsl:stylesheet>

Saída:

26.825,80