Re: Calcul en XSLT

Page principale

Répondre à ce message
Auteur: Stephane Bonhomme
Date:  
À: ML guilde
Sujet: Re: Calcul en XSLT
Salut Frederic,

Il faut utiliser la fonction format-number

<xsl:value-of select="format-number($aa * 42,'#.00')" />

Cordialement,
Stéphane

Le jeudi 26 mai 2011 à 09:31 +0200, Frédéric a écrit :
> Le samedi 21 mai 2011, Damien Goutte-Gattat a écrit :
>
> > > Est-il possible de multiplier le résultat retourné par le template
> > > avant de l'afficher ?
> >
> > Oui, en stockant le résultat de l’appel dans une variable que l’on peut
> > ensuite manipuler avec une expression XPath :
> >
> >     <xsl:text>PARAM: AA=</xsl:text>
> >     <xsl:variable name="aa">
> >       <xsl:call-template name="getDataLastValueHeader">
> >         <xsl:with-param name="d" select="'Sample'" />
> >         <xsl:with-param name="p" select="'lattice'"/>
> >         <xsl:with-param name="c" select="'alpha'"/>
> >         <xsl:with-param name="pointIndex" select="0"/>
> >       </xsl:call-template>
> >     </xsl:variable>
> >     <xsl:value-of select="$aa * 42" />

> >
> > Testé uniquement avec libxslt, mais sauf erreur de ma part c’est un
> > comportement tout-à-fait standard, ça doit fonctionner avec n’importe
> > quel moteur XSLT.
>
> Bon, ça marche très bien, mais dans mon cas, ce n'est pas tout à fait bon,
> car la sortie est arrondie à 3 décimales dans l'appel du template, mais du
> coup, elle ne l'est plus après la multiplication... Faudrait revoir plus de
> choses, en séparant tout ça.
>
> Mais merci quand même pour la solution.
>

-- 
           Stéphane Bonhomme           --           Exselt Services


        Formations, Conseil et Réalisations en Ingénierie Documentaire,
                    Technologies Web et Logiciels Libres 
             stephane@???   -   http://www.exselt.com
                04 57 39 30 78        /      06 88 57 27 08