Bonjour,
Je cherche à caster un nombre de entier vers chaine de caractère
Ceci m'affiche 2 alors moi je veux 0002Code:
1
2
3
4
5
6
7
8
9
10
11 function a(){ matr=0002; str=12; alert(matr); }
Merci de votre aide
Version imprimable
Bonjour,
Je cherche à caster un nombre de entier vers chaine de caractère
Ceci m'affiche 2 alors moi je veux 0002Code:
1
2
3
4
5
6
7
8
9
10
11 function a(){ matr=0002; str=12; alert(matr); }
Merci de votre aide
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:
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"
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:
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);
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.Code:
1
2
3
4 function addZeros(num, strLength) { return new Array(strLength-(parseInt(num,'',10)+'').length+1).join(0)+parseInt(num+'',10); }
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 :/
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:var valeur = <?php echo $var; ?>;
devient :
Code:var valeur = "<?php echo $var; ?>";