Como gerar inteiros com zeros à esquerda em JavaScript

Duplicar Possível:
Como posso criar um valor Zerofilled usando JavaScript?

Eu posso arredondar para x quantidade de casas decimais com math.round, mas existe uma maneira de arredondar para a esquerda do decimal? por exemplo, 5 se torna 05 se eu especificar 2 lugares

NOTA : Potencialmente desatualizado. O ECMAScript 2017 inclui o String.prototype.padStart

Você está pedindo zero preenchimento? Não realmente arredondando. Você terá que convertê-lo em uma string, pois os números não fazem sentido com zeros à esquerda. Algo assim…

 function pad(num, size) { var s = num+""; while (s.length < size) s = "0" + s; return s; } 

Ou, se você sabe que nunca usaria mais do que um número X de zeros, isso poderia ser melhor. Isso pressupõe que você nunca queira mais de 10 dígitos.

 function pad(num, size) { var s = "000000000" + num; return s.substr(s.length-size); } 

Se você se preocupa com números negativos, terá de retirar o "-" e lê-lo.

Você poderia estender o object Number :

 Number.prototype.pad = function(size) { var s = String(this); while (s.length < (size || 2)) {s = "0" + s;} return s; } 

Exemplos:

 (9).pad(); //returns "09" (7).pad(3); //returns "007" 

Outra abordagem:

 function zeroPad(num, places) { var zero = places - num.toString().length + 1; return Array(+(zero > 0 && zero)).join("0") + num; } zeroPad(5, 2); // "05" zeroPad(5, 4); // "0005" zeroPad(5, 6); // "000005" zeroPad(1234, 2); // "1234" :) 

De https://gist.github.com/1180489

 function pad(a,b){return(1e15+a+"").slice(-b)} 

Com comentários:

 function pad( a, // the number to convert b // number of resulting characters ){ return ( 1e15 + a + // combine with large number "" // convert to string ).slice(-b) // cut leading "1" } 
 function zfill(num, len) {return (Array(len).join("0") + num).slice(-len);} 

Apenas por diversão (eu tive algum tempo para matar), uma implementação mais sofisticada que armazena em cache a cadeia zero:

 pad.zeros = new Array(5).join('0'); function pad(num, len) { var str = String(num), diff = len - str.length; if(diff < = 0) return str; if(diff > pad.zeros.length) pad.zeros = new Array(diff + 1).join('0'); return pad.zeros.substr(0, diff) + str; } 

Se a contagem de preenchimento é grande e a function é chamada com freqüência suficiente, ela realmente supera os outros methods …