quitar - string to number javascript
Cómo generar enteros con ceros en JavaScript (6)
Posible duplicado:
¿Cómo puedo crear un valor Zerofilled usando JavaScript?
Puedo redondear a x la cantidad de lugares decimales con math.round pero ¿hay una manera de redondear a la izquierda del decimal? por ejemplo 5 se convierte en 05 si especifico 2 lugares
NOTA : Potencialmente desactualizado. ECMAScript 2017 incluye String.prototype.padStart
¿Estás pidiendo cero relleno? Realmente no redondeando. Tendrás que convertirlo en una cadena, ya que los números no tienen sentido con los ceros iniciales. Algo como esto...
function pad(num, size) {
var s = num+"";
while (s.length < size) s = "0" + s;
return s;
}
O si sabes que nunca usarías más de X ceros, esto podría ser mejor. Esto supone que nunca querría más de 10 dígitos.
function pad(num, size) {
var s = "000000000" + num;
return s.substr(s.length-size);
}
Si te preocupan los números negativos, tendrás que quitar el "-" y leerlo.
Desde https://gist.github.com/1180489
function pad(a,b){return(1e15+a+"").slice(-b)}
Con comentarios:
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"
}
Otro enfoque:
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" :)
Podrías extender el objeto Number
:
Number.prototype.pad = function(size) {
var s = String(this);
while (s.length < (size || 2)) {s = "0" + s;}
return s;
}
Ejemplos:
(9).pad(); //returns "09"
(7).pad(3); //returns "007"
Solo por diversión (tuve algo de tiempo para matar), una implementación más sofisticada que almacena en caché la cadena cero:
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;
}
Si el recuento de relleno es grande y la función se llama con suficiente frecuencia, en realidad supera a los otros métodos ...
function zfill(num, len) {return (Array(len).join("0") + num).slice(-len);}