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

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 172
    Points : 0
    Points
    0
    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
    Points : 496
    Points
    496
    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
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 172
    Points : 0
    Points
    0
    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
    Points : 496
    Points
    496
    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
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 172
    Points : 0
    Points
    0
    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
    Points : 496
    Points
    496
    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 :/

  7. #7
    Nouveau Candidat au Club
    Inscrit en
    Septembre 2008
    Messages
    172
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 172
    Points : 0
    Points
    0
    Par défaut
    Une application qui existe déjà à comme paramètre 6 nombres et qui débute par des zéros , donc j'ai rien à changer . il faut avoir une solution !!!!

    Merci de votre aide .

    Citation Envoyé par dukej Voir le message
    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 :/

  8. #8
    Membre expérimenté Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Points : 1 519
    Points
    1 519
    Par défaut
    Citation Envoyé par ghir_ana Voir le message
    Une application qui existe déjà à comme paramètre 6 nombres et qui débute par des zéros , donc j'ai rien à changer . il faut avoir une solution !!!!

    Merci de votre aide .
    Une application javascript ne peut pas avoir de nombre(type number) avec une valeur décimale commençant par zéro.

    S'il s'agit d'une application externe et que tu reçois les données, par exemple par une requête ajax, elles seront toujours sous la forme de string.

    Si ces données viennent d'un langage coté serveur comme du php, alors il te suffit de mettre des guillemets autour de ta variable.

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    var valeur = <?php echo $var; ?>;

    devient :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    var valeur = "<?php echo $var; ?>";

  9. #9
    Inactif  

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

    Informations forums :
    Inscription : Mai 2010
    Messages : 345
    Points : 496
    Points
    496
    Par défaut
    Citation Envoyé par ghir_ana Voir le message
    Une application qui existe déjà à comme paramètre 6 nombres et qui débute par des zéros , donc j'ai rien à changer . il faut avoir une solution !!!!

    Merci de votre aide .
    ben maintenant tu l'as ta solution

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