Partage
  • Partager sur Facebook
  • Partager sur Twitter

[JAVASCRIPT]ajouter 0 devant un nombre

Sujet résolu
    21 décembre 2017 à 19:53:25

    Bonjour,

    j'écris un programme dans lequel j'ai un compteur, et j'aimerais ajouter un 0 avant le nombre quand il est inférieur à 10. J'ai trouvé une fonction qui marche - j'ai essayé la fonction toute seule - mais en incorporant cette fonction à mon code, elle ne marche plus. Voici la fonction seule :

    function checkNumberDigits(myNumber)
    {
        myNumber = myNumber.toString();
    
        if ( myNumber.length < 2 )
        {
            return "0" + myNumber;
        }
    
        return myNumber;
    }

    Et voici mon code :

    "use strict";
    
    function startCountDown()
    {
        var timeRemaining = 12;
    
        var action = setInterval( function()
        {
            timeRemaining--;
            console.log(timeRemaining);
    
            checkNumberDigits(timeRemaining);
    
            if (timeRemaining < 1)
            {
                stopCountDown(action);
            }
        }, 1000 );
    }
    
    function stopCountDown(action)
    {
        clearInterval(action);
    }
    
    function checkNumberDigits(myNumber)
    {
        myNumber = myNumber.toString();
    
        if ( myNumber.length < 2 )
        {
            return "0" + myNumber;
        }
    
        return myNumber;
    }

    La fonction en elle-même rajoute bien un zéro, mais dans mon code, elle ne fonctionne plus.

    Est-ce que quelqu'un peut m'aider ?

    Merci.

    -
    Edité par me_moi 21 décembre 2017 à 19:56:20

    • Partager sur Facebook
    • Partager sur Twitter
      21 décembre 2017 à 20:30:15

      Euhh là c'est clairement que tu n'as pas compris la fonction x) Ta variable timereming ne changera pas car tu lui affectes pas une nouvelle valeur, pour que ça marche remplace la ligne 12 par :

      timeRemaining = checkNumberDigits(timeRemaining);

      Tu utilises cette fonction qu'une seule fois dans ton code, par conséquent tu peux le faire directement dans ton code. Je me demande bien comment tu as pu chercher une fonction comme celle là alors qu'elle est simple, je pense qu'il est plus simple de rajouter le 0 uniquement à l'affichage du code.

      J'espère t'avoir aidé ! Ramech.

      • Partager sur Facebook
      • Partager sur Twitter

      Envie de devenir un développeur de mods sur GTA V ? --> Développez votre premier mod sur GTA V

        22 décembre 2017 à 9:34:13

        C'est complètement tordu ce truc à base de toString. En général pour ça on utilise un ternaire et la fonction tiens en une ligne :

        function twoDigit(n) {

          return (n < 10 ? '0' : '') + n

        }

        • Partager sur Facebook
        • Partager sur Twitter
          23 décembre 2017 à 19:36:54

          Merci pour vos solutions. J'ai essayé ce que tu proposes RamechYT en utilisant ta fonction LCaba, mais ça ne change rien. J'ai essayé dans la console pour être sûr, le zéro ne s'affiche pas. Est-ce que vous avez une autre solution ?

          Merci.

          • Partager sur Facebook
          • Partager sur Twitter
            23 décembre 2017 à 19:53:34

            Remontre ton code avec nos modfications, le problème doit surrement être simple à corriger.
            • Partager sur Facebook
            • Partager sur Twitter

            Envie de devenir un développeur de mods sur GTA V ? --> Développez votre premier mod sur GTA V

              23 décembre 2017 à 20:49:25

              <script type="text/javascript">
              function startCountDown()
              {
                  var timeRemaining = 12;
              	
              	console.log(timeRemaining);
              	
                  var action = setInterval( function()
                  {
                      timeRemaining--;
              		
              		var elementPourLeDecompte = checkNumberDigits(timeRemaining);
              
                      console.log(elementPourLeDecompte);
               
                      if (timeRemaining < 1)
                      {
                          stopCountDown(action);
                      }
                  }, 1000 );
              }
               
              function stopCountDown(action)
              {
                  clearInterval(action);
              }
               
              function checkNumberDigits(myNumber)
              {
              	return (myNumber < 10 ? "0" : "") + myNumber;
              }
              
              startCountDown();
              </script>

              Tu dois utilisé ta nouvelle variable avec le 0 devant et transformer en STRING uniquement pour afficher et non pour faire la comparaison avec ton 1

              -
              Edité par Gh0stFive 23 décembre 2017 à 20:52:27

              • Partager sur Facebook
              • Partager sur Twitter
                24 décembre 2017 à 18:56:15

                Merci pour votre aide. ça marche.
                • Partager sur Facebook
                • Partager sur Twitter
                  6 septembre 2023 à 13:59:03

                  A ceux qui passeraient par là aujourd'hui, le plus simple pour ajouter des zéros devant un nombre (pour afficher des heure/minutes par exemple) est d'utiliser la méthode padStart de l'objet String.
                  Il prend en premier paramètre le nombre de caractère qu'il doit y avoir, et en second le caractère à placer

                  let number = 5;

                  number.toString().padStart(2, "0") // return "05"

                  • Partager sur Facebook
                  • Partager sur Twitter
                    6 septembre 2023 à 14:23:51

                    (habituellement on évite de remonter les sujets, mais tu apportes une nouvelle solution intéressante pour les gens qui viendraient dans le futur, alors pour cette fois ça passe ;) )
                    • Partager sur Facebook
                    • Partager sur Twitter

                    Pas d'aide concernant le code par MP, le forum est là pour ça :)

                    [JAVASCRIPT]ajouter 0 devant un nombre

                    × 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