Partage
  • Partager sur Facebook
  • Partager sur Twitter

Rendre nombre lisible

    18 avril 2018 à 14:22:35

    Hello!

    Je reçois un chiffre en milliars comme celui-ci par exemple:

    - 19235400726

    Je voulais savoir si j'avais un moyen de le rendre 'lisible' pour un humain ? du genre:

    19 235 400 726;

    par le biais d'un tools ?

    ou je suis obligé de faire ça la mano?

    merci!

    • Partager sur Facebook
    • Partager sur Twitter
      18 avril 2018 à 14:38:15

      salut

      qu'est ce que tu entend par lisible par un humain ? fait tu référence à une écriture en lettre à la place des chiffres ?

      • Partager sur Facebook
      • Partager sur Twitter
        18 avril 2018 à 14:42:12

        Il existe déjà une fonction pour cela.

        https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Objets_globaux/Number/toLocaleString

        • Partager sur Facebook
        • Partager sur Twitter
        Autodidacte, j'essaye d'apprendre le pourquoi du comment :)
          18 avril 2018 à 18:39:21

          «Lisible par un humain» sans doute un être normal utilisant les espaces et virgules comme séparateurs par opposition à un développeur borné ayant oublié les réalités les plus élémentaires...

          Une expression régulière permet d'insérer des espaces tous les 3 chiffres après avoir réduit le nombre à deux décimales (effectives) et remplacé le point par une virgule.

          Number.prototype.toMonetaryString=function(){
          	var n=this.toFixed(2).replace(/\./,',');
          	return n.replace(/(\d)(?=(\d{3})+\b)/g,'$1 ');
          }
          
          // Utilisation
          var i=123456.78;
          alert(i.toMonetaryString()); // '123 456,78'
          



          -
          Edité par 007julien 18 avril 2018 à 18:43:51

          • Partager sur Facebook
          • Partager sur Twitter
            19 avril 2018 à 9:41:16

            Voilà Julien une parfaite définition !

            Merci de la réponse ;)

            • Partager sur Facebook
            • Partager sur Twitter
              19 avril 2018 à 16:31:02

              007julien, il y a déjà une fonction existante faisant la même chose que ta fonction. C'est complètement inutile de rajouter un nouveau prototype sur l'objet NUMBER quand cette fonction existe DÉJÀ.

              voir -> .toLocaleString


              J'ai mis le lien vers la doc de cette fonction dans kmon message au dessus.

              • Partager sur Facebook
              • Partager sur Twitter
              Autodidacte, j'essaye d'apprendre le pourquoi du comment :)
                19 avril 2018 à 19:27:53

                Oui mais je me méfie de toutes ses fonctions dont les formes et compatibilité ne sont jamais assurées (voir le tableau en bas de la page précitée).

                -
                Edité par 007julien 19 avril 2018 à 19:28:21

                • Partager sur Facebook
                • Partager sur Twitter
                  19 avril 2018 à 23:30:00

                  Jamais assurées? Tu es sérieux, ou tu l'as pas lu le tableau des compatibilités? Parce qu'entre expliquer que ça fait 40 versions de la plupart des navigateurs que c'est supporté en standard, et le fait que la doc précise que c'est un standard établi depuis Ecmascript 3...alors que Ecmascript 5 est considéré comme utilisable en production alors qu'il date de 2015. Et toucher au prototype des objets standards est rarement une bonne idée...

                  Au passage, ta définition "humaine" du développeur borné a oublié de préciser que le séparateur décimal par exemple, entre autre, est spécifique à la locale (donc au pays). Même le formatage "humain" du nombre en lui-même est spécifique. C'est pour ça que les développeurs "bornés" demandent sous quel format la personne veut formater son nombre, et qu'il développe (en lui donnant le lien vers la doc de la fonction) des fonctions qui sont génériques = utilisables pour la globalité des cas de figure. C'est pas pour rien que l'objet Number en JS (comme dans tout langage, au passage) ne fournit pas de méthode formatageVirgule. Ça n'a juste aucun sens d'écrire 10 méthodes de formatage quand une seule suffit amplement. Au passage, la méthode standard est bien plus lisible qu'une regex.

                  -
                  Edité par Genroa 19 avril 2018 à 23:37:53

                  • Partager sur Facebook
                  • Partager sur Twitter
                  /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\
                    21 avril 2018 à 22:00:33

                    Merci pour toute cette prose mais j'ai bien vu des non, confirmant mon assertion, pour les arguments locales et options dans plusieurs  navigateurs utilisant Android !

                    • Partager sur Facebook
                    • Partager sur Twitter
                      23 avril 2018 à 10:12:34

                      "navigateurs utilisant Android"

                      Cette phrase n'a aucun sens... Mais si par là tu voulais dire "navigateur pour Android", la grille indique que la très vaste majorité des navigateurs supporte ça, au minimum en support basique. Opera pour Mobile ne le gère pas complètement par exemple, mais quand ça représente 0.005% d'utilisation, c'est clairement pas important. Globalement, c'est de l'EM3, si un navigateur ne le supporte pas, tu peux considérer qu'il n'est pas à jour, et que osef. Et si vraiment tu le veux, alors il y a des polyfill qui remplissent la même fonction et t'évitent de réinventer la roue. Tu n'es pas le premier à t'être posé la question pour cette fonction, je pense.

                      • Partager sur Facebook
                      • Partager sur Twitter
                      /!\ Si je cesse de répondre c'est parce que vous êtes venus poster sans avoir suivi les cours de base sur le sujet. /!\

                      Rendre nombre lisible

                      × 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