<html>
<head>


<title>Fonction format-number()</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">Fonction format-number()</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">
Prend un nombre et le formate en cha&icirc;ne. </td></tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Entr&eacute;es</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>Le nombre &agrave; formater et la cha&icirc;ne de format sont obligatoires. Le troisi&egrave;me argument correspond au nom facultatif d'un format d&eacute;cimal&nbsp;; si ce troisi&egrave;me argument n'est pas indiqu&eacute;, le format d&eacute;cimal par d&eacute;faut est utilis&eacute;. </p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">Sortie</td>
</tr>
<tr>
<td colspan="2" class="description">
<p>Le nombre, format&eacute; selon les r&egrave;gles fournies par les autres arguments. Les caract&egrave;res sp&eacute;ciaux utilis&eacute;s dans le deuxi&egrave;me argument sont les suivants&nbsp;:</p>
<dl>
<dt>
<span class="LITERAL">#</span>
</dt>
<dd>
Repr&eacute;sente un chiffre. Les z&eacute;ros de t&ecirc;te ou de queue ne sont pas affich&eacute;s. Formater le nombre <span class="LITERAL">4.0</span> avec la cha&icirc;ne &quot; #.## &quot; renvoie la cha&icirc;ne &quot; 4 &quot;.
<P></p>
<dt>
<span class="LITERAL">0</span>
</dt>
<dd>
Repr&eacute;sente un chiffre. Contrairement au caract&egrave;re <span class="LITERAL">#</span>, le <span class="LITERAL">0</span> affiche toujours un z&eacute;ro. Formater le nombre <span class="LITERAL">4.1</span> avec la cha&icirc;ne &quot; #.00 &quot; renvoie la cha&icirc;ne &quot; 4.10 &quot;.
<P></p>
<dt>
<span class="LITERAL">.</span>
</dt>
<dd>
Repr&eacute;sente le point d&eacute;cimal.
<P></p>
<dt>
<span class="LITERAL">-</span>
</dt>
<dd>
Repr&eacute;sente le signe moins.
<P></p>
<dt>
<span class="LITERAL">,</span>
</dt>
<dd>
Correspond au s&eacute;parateur de groupes.
<P></p>
<dt>
<span class="LITERAL">;</span>
</dt>
<dd>
S&eacute;pare les nombres positifs des nombres n&eacute;gatifs.
<P></p>
<dt>
<span class="LITERAL">%</span>
</dt>
<dd>
Indique qu'un nombre devrait &ecirc;tre affich&eacute; comme pourcentage. La valeur sera multipli&eacute;e par 100, puis affich&eacute;e comme un pourcentage. Formater le nombre <span class="LITERAL">.76</span> avec la cha&icirc;ne &quot; ##% &quot; renvoie la cha&icirc;ne &quot; 76% &quot; .
<P></p>
<dt>
<span class="LITERAL">\u2030</span>
</dt>
<dd>
Correspond au caract&egrave;re Unicode du signe pour mille. La valeur sera multipli&eacute;e par 1000, puis affich&eacute;e en pour mille. Formater le nombre <span class="LITERAL">.768</span> avec la cha&icirc;ne &quot; ###\u2030 &quot; renvoie la cha&icirc;ne &quot; 768 <graphic depth="23" width="18" fileref="figs/U2030.gif" align="absmiddle"/>&quot;.
<P></p>
</dl>
<p>Le troisi&egrave;me argument, le cas &eacute;ch&eacute;ant, doit correspondre au nom d'un &eacute;l&eacute;ment <span class="LITERAL">&lt;xsl:decimal-format&gt;</span>. L'&eacute;l&eacute;ment <span class="LITERAL">&lt;xsl:decimal-format&gt;</span> permet de d&eacute;finir le caract&egrave;re &agrave; utiliser pour le point d&eacute;cimal et le s&eacute;parateur de groupes, la cha&icirc;ne &agrave; utiliser pour repr&eacute;senter l'infini ainsi que d'autres options de formatage. Voir <xref linkend="decimal-format-element">&lt;xsl:decimal-format&gt;</xref> pour de plus amples informations.</p>
</td>
</tr>
<tr>
<td colspan="2" class="CLEARSEPARATION">&nbsp;</td>
</tr>
<tr>
<td colspan="2" class="TITLE">D&eacute;finie 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 utilise la fonction <span class="LITERAL">format-number()</span> de diff&eacute;rentes mani&egrave;res&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;

<!--<?troff .Nd 10?>-->
  &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 format-number() function:&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(528.3, '#.#;-#.#')=&lt;/xsl:text&gt;
    &lt;xsl:value-of select=&quot;format-number(528.3, '#.#;-#.#')&quot;/&gt;
    &lt;xsl:value-of select=&quot;$newline&quot;/&gt;
    &lt;xsl:text&gt;   format-number(528.3, '0,000.00;-0,000.00')=&lt;/xsl:text&gt;
    &lt;xsl:value-of select=&quot;format-number(528.3, '0,000.00;-0,000.00')&quot;/&gt;
    &lt;xsl:value-of select=&quot;$newline&quot;/&gt;
    &lt;xsl:text&gt;   format-number(-23528.3, '$#,###.00;($#,###.00)')=&lt;/xsl:text&gt;
    &lt;xsl:value-of select=&quot;format-number(-23528.3, '$#,###.00;($#,###.00)')&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>Ce document XML est utilis&eacute; avec la feuille de style&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>L'ex&eacute;cution de cette feuille de style permet d'obtenir les r&eacute;sultats suivants&nbsp;:</p>
<span class="PROGRAMLISTING"><pre>

Tests of the format-number() function:

   format-number(528.3, '#.#;-#.#')=528.3
   format-number(528.3, '0,000.00;-0,000.00')=0,528.30
   format-number(-23528.3, '$#,###.00;($#,###.00)')=($23,528.30)
   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>
<p>Ces quelques exemples montrent certaines des options de formatage disponibles les plus complexes, accompagn&eacute;es de r&eacute;f&eacute;rences aux &eacute;l&eacute;ments <span class="LITERAL">&lt;xsl:decimal-format&gt;</span> de la feuille de style. La derni&egrave;re section pr&eacute;sente une utilisation plus courante de la fonction <span class="LITERAL">format-number</span>&nbsp;: le formatage de valeurs donn&eacute;es ou calcul&eacute;es &agrave; partir d'un document XML. </p>
</td>
</tr>
</table>
</div>
</body>
</html>
