IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XSL/XSLT/XPATH XML Discussion :

sum de nombres ayant un séparateur de milliers


Sujet :

XSL/XSLT/XPATH XML

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 352
    Points : 234
    Points
    234
    Par défaut sum de nombres ayant un séparateur de milliers
    bonjour
    je débute un peu en xsl. j'ai fait quelques recherches sur mon problème mais je n'ai rien trouvé. pourtant ça me paraissait simple au à la base (je parle de ma demande).
    j'ai des calculs à faire sur des valeurs, et pour commencer, rien de sorcier : une somme.
    mes données en question sont des nombres (format : 1 234,56).
    mon souci, c'est que j'ai une erreur 'NaN' lorsque je veux faire la somme. A priori, le séparateur de milliers (l'espace) pose problème.

    donc j'ai fait un petit test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    		<xsl:value-of select="@CA_Reel_NB"/>-
    		<xsl:value-of select="number(@CA_Reel_NB)"/>-
    		<xsl:value-of select="translate(@CA_Reel_NB, ',', '.')"/>-
    		<xsl:value-of select="number(translate(@CA_Reel_NB, ',', '.'))"/>
    et voilà ce que ca m'affiche :

    826,5- NaN- 826.5- 826.5
    235- 235- 235- 235
    1 680- NaN- 1 680- NaN
    2 444,4- NaN- 2 444.4- NaN

    Les nombres ayant comme séparateur de décimales la virgule ne passent pas. En remplaçant la virgule par un point, ils sont reconnus comme des nombres donc OK.
    Les nombres ayant comme séparateur de milliers l'espace ne passent pas. Et la, je ne vois pas comment faire.

    J'espère avoir été assez clair, n'hésitez pas à me demander si besoin.
    Merci pour votre aide

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    L'enlever, tu veux dire ? Tu as cherché comment enlever un caractère ? Je confirme que c'est relativement simple et courant et qu'il est surprenant de ne pas avoir trouvé.

    Mais il suffit d'utiliser translate(), avec le troisième paramètre vide. Ainsi, l'espace en deuxième paramètre, doit être remplacé par rien, donc enlevé.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2013
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2013
    Messages : 352
    Points : 234
    Points
    234
    Par défaut
    j'ai déjà essayé mais il ne trouve pas d'espace avec translate !!

  4. #4
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    il ne trouve pas d'espace avec translate
    translate() fait les remplacements 1 à 1 dans l'ordre de la présence dans les deux arguments. Si à partir de certain caractère, le deuxième argument s'est déjà trouvé épuissé en nombre, ces caractères suivis sont remplacés par le vide. Le truc est de mettre tous ces caractères qui se veulent être remplacés par le vide tout aux dernières dans le premier argument.
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <xsl:value-of select="@CA_Reel_NB"/>-
    <xsl:value-of select="number(@CA_Reel_NB)"/>-
    <xsl:value-of select="translate(@CA_Reel_NB, ', ', '.')"/>-
    <xsl:value-of select="number(translate(@CA_Reel_NB, ', ', '.'))"/>

Discussions similaires

  1. Réponses: 3
    Dernier message: 19/11/2014, 16h18
  2. [Smarty] Séparateur de millier pour les nombres
    Par Dionyzos dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 10/11/2011, 17h21
  3. Réponses: 3
    Dernier message: 28/04/2007, 15h07
  4. Formater un nombre avec des séparateurs de milliers
    Par lagotonio dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 23/02/2007, 19h23
  5. Format des nombres entiers, séparateurs de milliers
    Par zazaraignée dans le forum Langage
    Réponses: 2
    Dernier message: 26/10/2005, 01h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo