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

JavaScript Discussion :

Caster un nombre de entier vers chaine de caractère


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Septembre 2008
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 172
    Par défaut Caster un nombre de entier vers chaine de caractère
    Bonjour,

    Je cherche à caster un nombre de entier vers chaine de caractère

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    function a(){
    matr=0002;
    str=12;
     
     
    alert(matr);
     
     
    }
    Ceci m'affiche 2 alors moi je veux 0002


    Merci de votre aide

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par défaut
    Bah ce n'est pas un nombre qu'il faut utiliser mais une chaine de caratères :o

    Si tu traites un nombre et ensuite tu veux l'afficher, c'est seulement au moment de l'afficher que tu rajoutes les zéros :o
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    function addZeros(num, strLength) {
       return new Array(strLength-(num+'').length+1).join(0)+num;
    }
     
    addZeros(234, 4) =>"0234"
    addZeros(2,4) =>"0002"
    addZeros(45,10) => "0000000045"

  3. #3
    Membre très actif
    Inscrit en
    Septembre 2008
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 172
    Par défaut
    Merci d'abord pour votre réponse , mais essaye ce nombre matr=0012;

    il va donner comme résultat 0010



    Citation Envoyé par dukej Voir le message
    Bah ce n'est pas un nombre qu'il faut utiliser mais une chaine de caratères :o

    Si tu traites un nombre et ensuite tu veux l'afficher, c'est seulement au moment de l'afficher que tu rajoutes les zéros :o
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    function addZeros(num, strLength) {
       return new Array(strLength-(num+'').length+1).join(0)+num;
    }
    
    addZeros(234, 4) =>"0234"
    addZeros(2,4) =>"0002"
    addZeros(45,10) => "0000000045"

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par défaut
    Citation Envoyé par ghir_ana Voir le message
    Merci d'abord pour votre réponse , mais essaye ce nombre matr=0012;

    il va donner comme résultat 0010
    Mais as tu compris que 0012 n'est pas un nombre au sens que tu le souhaites :o.

    en écrivant 0012, tu le déclares en octal, comme il y a 0 devant il est en base octale.
    Il ne faut surtout pas que tu aies 0012 déclaré tel, c'est simplement 12 :o
    Donc tu travailles avec des nombres NORMAUX et lors de l'affichage tu transformes.

    Sinon je peux te sécuriser la fonction hein :o
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function addZeros(num, strLength) {
       return new Array(strLength-(parseInt(num,10)+'').length+1).join(0)+num;
    }
     
    addZeros(0012,10);

  5. #5
    Membre très actif
    Inscrit en
    Septembre 2008
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 172
    Par défaut
    Toujours le même résultat 0010 !


    Citation Envoyé par dukej Voir le message
    Mais as tu compris que 0012 n'est pas un nombre au sens que tu le souhaites :o.

    en écrivant 0012, tu le déclares en octal, comme il y a 0 devant il est en base octale.
    Il ne faut surtout pas que tu aies 0012 déclaré tel, c'est simplement 12 :o
    Donc tu travailles avec des nombres NORMAUX et lors de l'affichage tu transformes.

    Sinon je peux te sécuriser la fonction hein :o
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function addZeros(num, strLength) {
       return new Array(strLength-(parseInt(num,10)+'').length+1).join(0)+num;
    }
     
    addZeros(0012,10);

  6. #6
    Inactif  

    Profil pro
    Inscrit en
    Mai 2010
    Messages
    345
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Par défaut
    Citation Envoyé par ghir_ana Voir le message
    Toujours le même résultat 0010 !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    function addZeros(num, strLength) {
       return new Array(strLength-(parseInt(num,'',10)+'').length+1).join(0)+parseInt(num+'',10);
    }
    En fait le problème c'est que tu déclares ton nombre en base octale (comme je l'ai expliqué plus haut) en le commencant par 0, déjà arrête cette mauvaise pratique. Un nombre en décimal commence par un chiffre autre que 0.

    Je t'ai corrigé la fonction afin qu'elle prenne en compte ton problème, mais ça reste moche de devoir convertir le nombre en chaine de caractères pour ensuite le repasser en int :/

Discussions similaires

  1. Conversion entier vers chaine formatée
    Par mikaelm dans le forum Ruby
    Réponses: 2
    Dernier message: 19/06/2008, 13h43
  2. Réponses: 15
    Dernier message: 16/08/2007, 11h47
  3. conversion entier vers chaine de caratères
    Par naima2005 dans le forum C++
    Réponses: 3
    Dernier message: 20/08/2006, 02h14
  4. Réponses: 4
    Dernier message: 16/05/2006, 21h03
  5. Entier vers chaine
    Par litbos dans le forum C
    Réponses: 6
    Dernier message: 28/10/2005, 14h58

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