optimisation de "leading" zeros et notation scientifique
suite à un post récent sur le forum, je me pencahis sur l'optimisation d'un code pour ajouter des zeros devant un nombre pour en formatter l'affichage
les scripts classiques porposent une boucle
Code:
1 2 3 4 5
| function NumFormat(nombre, zeros) {
var temp = new String(nombre);
while ((temp.length < zeros) && (temp = 0 + temp)) {}
return temp;
} |
Je me suis donc attaché a faire disparaitre cette boucle au profit de la generation immediate du bon nombre de zeros ...
Code:
1 2 3
| function NumFormat1(nombre, zeros) {
return new String(1*Math.pow(10,(zeros-nombre.toString().length))).replace(/^.{1}/,'')+new String(nombre);}
alert(NumFormat1(12,22)) |
ça fonctionne du tonnerre sauf au dela de 22 caractères à cause de la notation scientifique 10 puissance 23 retourne
Code:
1.0000000000000001e+23
Voyez vous une solution ?