2009-08-16 17 views
15

Eventuali duplicati:
How can I create a Zerofilled value using JavaScript?Come posso creare una rappresentazione di stringa senza riempimento di un numero in una base arbitraria?

Quando converto un # da base 10 a base 16 esadecimale utilizzando JavaScript, lo fa non è zero pad il numero.

Ad esempio:

var myBaseTenNumber = 0; 
myBaseTenNumber.toString(16); // should be 00 but it's just 0 

un modo semplice a zero pad il mio numero da 2 cifre di lunghezza?

+0

See: http://stackoverflow.com/questions/1267283/how-can- i-create-a-zerofilled-value-using-javascript – Shog9

+1

"0x" + ((nuovo array (8 + 1)). join ("0") + parseInt (num, 10) .toString (16)). (-8) .toUpperCase() –

risposta

22

Generalmente qualcosa di simile

Se si conosce la lunghezza in anticipo si può semplicemente fare (qualcosa di simile):

var temp = myBaseTenNumber.toString(16); 
("00" + myBaseTenNumber.toString(16)).substring(2 - temp.length, 2); 
+0

Molto creativo, +1 –

+10

Ricorda che puoi usare '.substr (-2)' per le ultime due cifre. –

+2

Onestamente non sono d'accordo con il flag "duplicato". Questo ha una soluzione molto semplice e accurata che non è assolutamente correlata al problema generale del padding. Questo dovrebbe essere per interi senza segno in qualsiasi base, maxPad è la lunghezza della stringa di output. È necessario innanzitutto un controllo sul numero di input per vedere se supera la lunghezza massima una volta trasformata ((Math.pow (base, maxPad) + numero). ToString (base) .slice (1, maxPad +1) – malber

Problemi correlati