<html>
<head>


<title>&lt;xsl:decimal-format&gt;</title>
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div id="Description">
<table cellpadding="0" cellspacing="0" border="0" width="100%" class="main">
<tr>
<td valign="top" class="NAME">&lt;xsl:decimal-format&gt;</td>
<td valign="top" class="COMPATIBILITY">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="divider"><img src="dwres:18084" width="100%" height="1"></td>
</tr>
<tr>
<td valign="top" colspan="2" class="description">
D&eacute;finit un format num&eacute;rique &agrave; utiliser lors de l'&eacute;criture de valeurs num&eacute;riques dans le document de sortie. Si l'&eacute;l&eacute;ment <span class="LITERAL">&lt;decimal-format&gt;</span> ne poss&egrave;de pas de <span class="LITERAL">name</span>, il est consid&eacute;r&eacute; comme le format num&eacute;rique par d&eacute;faut &agrave; utiliser pour toutes les sorties. En revanche, si un format num&eacute;rique est nomm&eacute;, il peut &ecirc;tre r&eacute;f&eacute;renc&eacute; &agrave; partir de la fonction <span class="LITERAL">format-number()</span>.</td></tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Cat&eacute;gorie</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>El&eacute;ment de niveau sup&eacute;rieur</p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Attributs obligatoires</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>Aucun.</p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Attributs facultatifs</td>
</tr>
<tr>
<td colspan="2" class="description">
<dl>
<dt>
name
</dt>
<dd>
Affecte un nom &agrave; ce format.
<P></p>
<dt>
decimal-separator
</dt>
<dd>
D&eacute;finit le caract&egrave;re (g&eacute;n&eacute;ralement soit un point, soit une virgule) utilis&eacute; comme point d&eacute;cimal. Ce caract&egrave;re est utilis&eacute; aussi bien dans la cha&icirc;ne de format que dans la sortie. La valeur par d&eacute;faut est le point ( <span class="LITERAL">.</span> ).
<P></p>
<dt>
grouping-separator
</dt>
<dd>
D&eacute;finit le caract&egrave;re (g&eacute;n&eacute;ralement soit un point, soit une virgule) utilis&eacute; comme s&eacute;parateur de milliers. Ce caract&egrave;re est utilis&eacute; aussi bien dans la cha&icirc;ne de format que dans la sortie. La valeur par d&eacute;faut est la virgule ( <span class="LITERAL">,</span> ).
<P></p>
<dt>
infinity
</dt>
<dd>
D&eacute;finit la cha&icirc;ne &agrave; utiliser pour repr&eacute;senter l'infini. Les m&eacute;canismes num&eacute;riques XSLT prennent en charge l'infini positif et l'infini n&eacute;gatif. Cette cha&icirc;ne n'est utilis&eacute;e que dans la sortie. La valeur par d&eacute;faut est la cha&icirc;ne &quot; Infinity &quot;.
<P></p>
<dt>
signe moins
</dt>
<dd>
D&eacute;finit le caract&egrave;re utilis&eacute; comme signe moins. Ce caract&egrave;re n'est utilis&eacute; que dans la sortie. La valeur par d&eacute;faut est le tiret ( <span class="LITERAL">-</span> , #x2D).
<P></p>
<dt>
NaN
</dt>
<dd>
D&eacute;finit la cha&icirc;ne affich&eacute;e lorsque la valeur &agrave; formater n'est pas un nombre. Cette cha&icirc;ne n'est utilis&eacute;e que dans la sortie&nbsp;; la valeur par d&eacute;faut est la cha&icirc;ne &quot; NaN &quot;.
<P></p>
<dt>
percent
</dt>
<dd>
D&eacute;finit le caract&egrave;re utilis&eacute; comme signe de pourcentage. Ce caract&egrave;re est utilis&eacute; aussi bien dans la cha&icirc;ne de format que dans la sortie. La valeur par d&eacute;faut est le signe pourcent ( <span class="LITERAL">%</span> ).
<P></p>
<dt>
per-mille
</dt>
<dd>
D&eacute;finit le caract&egrave;re utilis&eacute; comme signe pour mille. Ce caract&egrave;re est utilis&eacute; aussi bien dans la cha&icirc;ne de format que dans la sortie. La valeur par d&eacute;faut est le caract&egrave;re Unicode pour mille (#x2030).
<P></p>
<dt>
zero-digit
</dt>
<dd>
D&eacute;finit le caract&egrave;re utilis&eacute; pour le chiffre z&eacute;ro. Ce caract&egrave;re est utilis&eacute; aussi bien dans la cha&icirc;ne de format que dans la sortie. La valeur par d&eacute;faut est le chiffre z&eacute;ro ( <span class="LITERAL">0</span> ).
<P></p>
<dt>
digit
</dt>
<dd>
D&eacute;finit le caract&egrave;re utilis&eacute; dans la cha&icirc;ne de format pour repr&eacute;senter un chiffre. La valeur par d&eacute;faut est le caract&egrave;re du signe num&eacute;rique ( <span class="LITERAL">#</span> ).
<P></p>
<dt>
pattern-separator
</dt>
<dd>
D&eacute;finit le caract&egrave;re utilis&eacute; pour s&eacute;parer les sous-motifs positifs et n&eacute;gatifs d'un motif. La valeur par d&eacute;faut est le point virgule ( <span class="LITERAL">;</span> ). Ce caract&egrave;re n'est utilis&eacute; que dans la cha&icirc;ne de format.
<P></p>
</dl>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Contenu</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>Aucun. <span class="LITERAL">&lt;xsl:decimal-format&gt;</span> est un &eacute;l&eacute;ment vide.</p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Appara&icirc;t dans</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>
L'&eacute;l&eacute;ment <span class="LITERAL">&lt;xsl:decimal-format&gt;</span> est un &eacute;l&eacute;ment de niveau sup&eacute;rieur qui ne peut appara&icirc;tre que sous forme d'enfant de l'&eacute;l&eacute;ment <span class="LITERAL">&lt;xsl:stylesheet&gt;</span>.</p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">D&eacute;fini dans</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>XSLT section 12.3, Formatage des nombres.</p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Exemple</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>La feuille de style suivante d&eacute;finit deux &eacute;l&eacute;ments <span class="LITERAL">&lt;decimal-format&gt;</span>&nbsp;:</p>
<span class="PROGRAMLISTING"><pre>
&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot; ?&gt;
&lt;xsl:stylesheet version=&quot;1.0&quot;
  xmlns:xsl=&quot;http://www.w3.org/1999/XSL/Transform&quot;
  xmlns:months=&quot;Lookup table for month names&quot;&gt;

  &lt;xsl:output method=&quot;text&quot;/&gt;

  &lt;months:name sequence=&quot;01&quot;&gt;January&lt;/months:name&gt;
  &lt;months:name sequence=&quot;02&quot;&gt;February&lt;/months:name&gt;
  &lt;months:name sequence=&quot;03&quot;&gt;March&lt;/months:name&gt;
  &lt;months:name sequence=&quot;04&quot;&gt;April&lt;/months:name&gt;

  &lt;xsl:variable name=&quot;newline&quot;&gt;
&lt;xsl:text&gt;
&lt;/xsl:text&gt;
  &lt;/xsl:variable&gt;

  &lt;xsl:decimal-format name=&quot;f1&quot;
    decimal-separator=&quot;:&quot;
    grouping-separator=&quot;/&quot;/&gt;

  &lt;xsl:decimal-format name=&quot;f2&quot;
    infinity=&quot;Really, really big&quot;
    NaN=&quot;[not a number]&quot;/&gt;

  &lt;xsl:template match=&quot;/&quot;&gt;
    &lt;xsl:value-of select=&quot;$newline&quot;/&gt;
    &lt;xsl:text&gt;Tests of the &lt;decimal-format&gt; element:&lt;/xsl:text&gt;

    &lt;xsl:value-of select=&quot;$newline&quot;/&gt;
    &lt;xsl:value-of select=&quot;$newline&quot;/&gt;
    &lt;xsl:text&gt;   format-number(1528.3, '#/###:00', 'f1')=&lt;/xsl:text&gt;
    &lt;xsl:value-of select=&quot;format-number(1528.3, '#/###:00;-#/###:00', 'f1')&quot;/&gt;
    &lt;xsl:value-of select=&quot;$newline&quot;/&gt;
    &lt;xsl:text&gt;   format-number(1 div 0, '###,###.00', 'f2')=&lt;/xsl:text&gt;
    &lt;xsl:value-of select=&quot;format-number(1 div 0, '###,###.00', 'f2')&quot;/&gt;
    &lt;xsl:value-of select=&quot;$newline&quot;/&gt;
    &lt;xsl:text&gt;   format-number(blue div orange, '#.##', 'f2')=&lt;/xsl:text&gt;
    &lt;xsl:value-of select=&quot;format-number(blue div orange, '#.##', 'f2')&quot;/&gt;
    &lt;xsl:value-of select=&quot;$newline&quot;/&gt;
    &lt;xsl:value-of select=&quot;$newline&quot;/&gt;
    &lt;xsl:for-each select=&quot;report/month&quot;&gt;
      &lt;xsl:text&gt;   &lt;/xsl:text&gt;
      &lt;xsl:value-of
        select=&quot;document('')/*/months:name[@sequence=current()/@sequence]&quot;/&gt;
      &lt;xsl:text&gt; - &lt;/xsl:text&gt;
      &lt;xsl:value-of select=&quot;format-number(miles-flown, '##,###')&quot;/&gt;
      &lt;xsl:text&gt; miles flown, &lt;/xsl:text&gt;
      &lt;xsl:value-of select=&quot;format-number(miles-earned, '##,###')&quot;/&gt;
      &lt;xsl:text&gt; miles earned.&lt;/xsl:text&gt;
      &lt;xsl:value-of select=&quot;$newline&quot;/&gt;
      &lt;xsl:text&gt;     (&lt;/xsl:text&gt;
      &lt;xsl:value-of
        select=&quot;format-number(miles-flown div sum(//miles-flown), '##%')&quot;/&gt;
      &lt;xsl:text&gt; of all miles flown, &lt;/xsl:text&gt;
      &lt;xsl:value-of
        select=&quot;format-number(miles-earned div sum(//miles-earned), '##%')&quot;/&gt;
      &lt;xsl:text&gt; of all miles earned.)&lt;/xsl:text&gt;
      &lt;xsl:value-of select=&quot;$newline&quot;/&gt;
      &lt;xsl:value-of select=&quot;$newline&quot;/&gt;
    &lt;/xsl:for-each&gt;
    &lt;xsl:text&gt;   Total miles flown: &lt;/xsl:text&gt;
    &lt;xsl:value-of select=&quot;format-number(sum(//miles-flown), '##,###')&quot;/&gt;
    &lt;xsl:text&gt;, total miles earned: &lt;/xsl:text&gt;
    &lt;xsl:value-of select=&quot;format-number(sum(//miles-earned), '##,###')&quot;/&gt;
  &lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;</pre></span>
<p>La feuille de style est appliqu&eacute;e au document suivant&nbsp;:</p>
<span class="PROGRAMLISTING"><pre>
&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;report&gt;
  &lt;title&gt;Miles Flown in 2001&lt;/title&gt;
  &lt;month sequence=&quot;01&quot;&gt;
    &lt;miles-flown&gt;12379&lt;/miles-flown&gt;
    &lt;miles-earned&gt;35215&lt;/miles-earned&gt;
  &lt;/month&gt;
  &lt;month sequence=&quot;02&quot;&gt;
    &lt;miles-flown&gt;32857&lt;/miles-flown&gt;
    &lt;miles-earned&gt;92731&lt;/miles-earned&gt;
  &lt;/month&gt;
  &lt;month sequence=&quot;03&quot;&gt;
    &lt;miles-flown&gt;19920&lt;/miles-flown&gt;
    &lt;miles-earned&gt;76725&lt;/miles-earned&gt;
  &lt;/month&gt;
  &lt;month sequence=&quot;04&quot;&gt;
    &lt;miles-flown&gt;18903&lt;/miles-flown&gt;
    &lt;miles-earned&gt;31781&lt;/miles-earned&gt;
  &lt;/month&gt;
&lt;/report&gt;</pre></span>
<p>Une fois le document XML trait&eacute; &agrave; l'aide de la feuille de style, les r&eacute;sultats sont les suivants&nbsp;:</p>
<span class="PROGRAMLISTING"><pre>

Tests of the &lt;decimal-format&gt; element:

   format-number(1528.3, '#/###:00', 'f1')=1/528:30
   format-number(1 div 0, '###,###.00', 'f2')=Really, really big
   format-number(blue div orange, '#.##', 'f2')=[not a number]

   January - 12,379 miles flown, 35,215 miles earned.
     (15% of all miles flown, 15% of all miles earned.)

   February - 32,857 miles flown, 92,731 miles earned.
     (39% of all miles flown, 39% of all miles earned.)

   March - 19,920 miles flown, 76,725 miles earned.
     (24% of all miles flown, 32% of all miles earned.)

   April - 18,903 miles flown, 31,781 miles earned.
     (22% of all miles flown, 13% of all miles earned.)

   Total miles flown: 84,059, total miles earned: 236,452</pre></span>
</td>
</tr>
</table>
</div>
</body>
</html>
