Partage
  • Partager sur Facebook
  • Partager sur Twitter

mise en forme des chiffre avec javascript

Sujet résolu
    18 décembre 2010 à 21:32:47

    Bonsoir;
    pouvez vous s'il vous plait m'aidez j'aimerai bien faire une mise en forme de mes chiffres dans mon formulaire, y a t'il un moyen avec javascript
    comme suit:
    1000000 ----------> 1000 000,00
    merci pour votre aide
    • Partager sur Facebook
    • Partager sur Twitter
      19 décembre 2010 à 1:38:30

      Il existe des moyens, je pense que le moyen principal est d'écrire une chaine avec des espacements.
      En bouclant la longueur du nombre, et tous les 3 nombres faire un espace.

      Donc tu crée une chaîne contenant ton nombre (String(nombre)), ainsi qu'une nouvelle chaîne qui contiendra l'ensemble.
      Tu fais une boucle sur la longueur, ou newChaine += chaine[i], en mettant des conditions pour les espacements.

      Pas forcément simple (et encore), mais c'est la seule solution qui me viens en tête.


      Edit:
      bon bah je devais vouloir m'occuper :
      var nombre = 1000000000, // nombre test
          chaine = String(nombre), // convertit en chaine
          newChaine = '', // nouvelle chaine vide
          longueur = chaine.length, // longueur du nombre
          b = 0, // espacement
          i = 0; // boucle
      
      // permet de savoir quand faire l'espacement
      if(longueur%3 != 0){
        b = 3 - longueur%3;
      }
      
      // boucle la nouvelle chaine
      for(i=0; i < longueur; i++){
      
        // si atteint 3 nombre
        if(b == 3){
        newChaine += ' '; // espacement
        b = 0; // reset
        }
        
        b++;  // incrémente nombre
        newChaine += chaine[i]; // attribut le nombre à la new chaine
      }
      
      // affiche résultat
      alert(newChaine);
      

      Cadeau, un petit script qui fait les espacements, commenté en plus, hé hé.


      Edit 2 :
      bon... aimant le travail bien fait, j'ai rajouté un découpage de la chaîne vis à vis du point, et ainsi le point n'est pas soumis à l'écart des nombres, et il est remplacé par une virgule.
      Si on voulait aller jusqu'au bout, on soumettrait un écart au nombre après la virgule, mais pas forcément très utile :-° .

      function formatNombre(nombre){
          var chaine = String(parseFloat(nombre)), // convertit en chaine
              newChaine = '', // nouvelle chaine vide
              longueur = chaine.length, // longueur du nombre
              b = 0, // espacement
              i = 0, // boucle
              point = -1; // position virgule
              virgule = '00'; // initialise la virgule à vide
      
          // récupère sa position (-1 = inexistante)
          point = chaine.indexOf('.', 0);
          
          // si un point existe
          if(point != -1){
            virgule = chaine.substr(point+1, longueur); // stock nombre après le point
            chaine = chaine.substr(0, point); // supprime ceux après
            longueur -= (longueur-point); // recalcule la longueur
          }
          
          // permet de savoir quand faire l'espacement
          if(longueur%3 != 0){
            b = 3 - longueur%3;
          }
          
          // boucle la nouvelle chaine
          for(i=0; i < longueur; i++){
          
            // si atteint 3 nombre
            if(b == 3){
            newChaine += ' '; // espacement
            b = 0; // reset
            }
            
            b++;  // incrémente nombre
            newChaine += chaine[i]; // attribut le nombre à la new chaine
          }
          
          newChaine+= ','+virgule; // rajoute la virgule et le nombre allant après
          
          // retourne le résultat
          return(newChaine);
      }
      
      // lance la fonction, et affiche : 154 001 000,0102
      alert(formatNombre(154001000.0102));
      


      Sur ce bonne nuit, et merci de ce petit exercice :lol: .


      Edit 3 :
      ... dans une fonction cay plus propre, et un parseFloat permet d'éviter les soucis.
      • Partager sur Facebook
      • Partager sur Twitter
        19 décembre 2010 à 16:24:34

        c'est troooooop gentil de votre part
        j'ai pensé que y a des fonctions qui permet de faire ça comme au php
        merci pour votre cour COMPLET :D
        très cordialement.
        • Partager sur Facebook
        • Partager sur Twitter

        mise en forme des chiffre avec javascript

        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
        • Editeur
        • Markdown