Bonjour,

Voila je suis un peu décu par une fonction de XSL : xsl:number qui arrondi automatiquement les nombre pour après les formatter!

C'est un peu bizzare je trouve de faire ca et de ne pas avoir une fonction qui ne fait que de formaté le nombre sans l'arrondir!!

Quelqu'un pouraait m'expliquer le pourquoi du parce que ? Et Ou me donnez un moyen plus simple que celui-ci:


<xsl:when test="contains(my:EinlagenUmwandlung/my:Aktivenueberschuss, '.')"><xsl:number value="substring-before(my:EinlagenUmwandlung/my:Aktivenueberschuss, '.')" grouping-separator="'" format="1" grouping-size="3"/>.<xsl:value-of select="substring(substring-after(my:EinlagenUmwandlung/my:Aktivenueberschuss, '.'), 1,2)"/></xsl:when>
			<xsl:otherwise><xsl:number value="my:EinlagenUmwandlung/my:Aktivenueberschuss" grouping-separator="'" format="1" grouping-size="3"/>.-- </xsl:otherwise>


Y at'il un autre moyen en XSL de faire que je ne connais pas!

C'est la première fois que je vois un truc pas très logique (enfin pour moi) dans XSL! Vous me direz surment que rien n'est logique et que tout n'est pas illogique mais si vous avez mieux que ca je suis preneur!!!

Merci pour votre aide qui est toujours des meilleurs!

++

Thierry
Salut,

Merci pour ta réponse je ne connaissais pas cette fonction !!!

alors si j'ai bien compris si je veux afficher 1000000000.14 en 1'000'000'000.14 je procède comme ceci:

<xsl:value-of select='format-number(my:EinlagenUmwandlung/my:Aktivenueberschuss, "###'###.00")'/>


Je te pose cette question car je ne peux pas me rendre compte d'après mon prog si je fais juste!

Es-ce que ca va marché car il y a une simple apostrophe qui ne se referme pas?

Merci beaucoup pour ton aide!
Dans les exemples de la fonction, il y a celui ci:
(The group separator for thousands. Example: ###,###.##)

Donc je presume que le separateur de milliers peut etre un apostrophe !
Sinon il est peut etre necessaire d'echapper l'apostrophe ???

A tester Smiley cligne

FRed
J'ai fait un petit test avec un petit XML et un petit XSL ben ca ne marche pas car XMLSpy dit que l'expression XPATH est invalide!

alors comment faire pour avoir le ' comme séparateur sans générer d'erreur?

Merci pour votre aide je continu a chercher


++
J'ai trouvé!

je continue la simplification:


 
<xsl:variable name="albert">'</xsl:variable> 
<xsl:choose>
<xsl:when test="contains(toto, '.')">
<xsl:value-of select="translate(format-number(toto, '###,###.##'), ',', $albert)"/> </xsl:when> 
<xsl:otherwise>
<xsl:number value="toto" grouping-separator="'" format="1" grouping-size="3"/>.-- </xsl:otherwise>
</xsl:choose> 


FrenchFred tu dit:
a écrit :
Sinon il est peut etre necessaire d'echapper l'apostrophe ???

Comment tu fais ca?

Si quelqu'un a encore une idée pour simplifier c'est volontiers!!!!

je rappelle le but:

si nombre: 1234.13 => 1'234.13
si nombre: 1234 => 1234.--

Merci pour votre aide

Thierry
Modifié par virgul (10 Jun 2005 - 10:30)
SirWam a écrit :

pour échapper l'apostrophe c'est &apos; non ?


Ah, ok c'est ca que tu appelles échapper! Non ben ca marche pas non plus! Merci tout de même pour l'ideé


Une autre idée pour optimiser?

Merci

Thierry
Modifié par virgul (13 Jun 2005 - 07:11)