How to output numbers with leading zeros in JavaScript

chris picture chris · Jun 8, 2010 · Viewed 693.4k times · Source

I can round to x amount of decimal places with math.round but is there a way to round left of the decimal? for example 5 becomes 05 if I specify 2 places

Answer

InfinitiesLoop picture InfinitiesLoop · Jun 8, 2010

NOTE: Potentially outdated. ECMAScript 2017 includes String.prototype.padStart

You're asking for zero padding? Not really rounding. You'll have to convert it to a string since numbers don't make sense with leading zeros. Something like this...

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

Or if you know you'd never be using more than X number of zeros this might be better. This assumes you'd never want more than 10 digits.

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

If you care about negative numbers you'll have to strip the "-" and readd it.