2009-08-16 10 views
15

Duplicar posible:
How can I create a Zerofilled value using JavaScript?¿Cómo puedo crear una representación de cadena sin relleno de un número en una base arbitraria?

cuando convierto un # desde la base 10 a la base 16 hexagonal utilizando JavaScript, no almohadilla cero el número.

Por ejemplo:

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

Cualquier forma fácil de cero almohadilla mi número a ser de 2 dígitos de longitud?

+0

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

+1

"0x" + ((new Array (8 + 1)). join ("0") + parseInt (num, 10) .toString (16)). substr (-8) .toUpperCase() –

Respuesta

22

general algo así como

Si conoce la longitud inicial sólo se puede hacer (algo así):

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

Muy creativo, +1 –

+10

Recuerde que puede usar '.substr (-2)' para los dos últimos dígitos. –

+2

Honestamente, no estoy de acuerdo con la bandera 'duplicada'. Esto tiene una solución muy clara y simple que no está absolutamente relacionada con el problema general de almohadillado. Esto sería válido para enteros sin signo en cualquier base, maxPad es la longitud de la cadena de salida. Claramente necesita una verificación en el número de entrada primero, para ver si excede la longitud máxima una vez transformado ((Math.pow (base, maxPad) + número)). ToString (base) .slice (1, maxPad +1) – malber

Cuestiones relacionadas