Add Leading Zeros to a Number in TypeScript

avatar

Borislav Hadzhiev

Mon Mar 07 20222 min read

Add Leading Zeros to a Number in TypeScript #

To add leading zeros to a number in TypeScript:

  1. Convert the number to a string.
  2. Call the padStart() method to add zeros to the start of the string.
  3. The padStart method returns a new string with the specified pad string applied from the start.
index.ts
function addLeadingZeros(num: number, totalLength: number): string { return String(num).padStart(totalLength, '0'); } console.log(addLeadingZeros(5, 2)); // 👉️ "05" console.log(addLeadingZeros(5, 3)); // 👉️ "005" console.log(addLeadingZeros(5, 4)); // 👉️ "0005" console.log(addLeadingZeros(100, 2)); // 👉️ "100" // ✅ or use the Addition (+) operator const num = '00' + 3; console.log(num); // 👉️ "003"

We passed the following 2 parameters to the String.padStart method.

  1. the target length for the string - the string gets padded with the pad string up to this length. This also takes into consideration decimal characters or a minus sign.
  2. the pad string - the substring that should be applied to the beginning of the string.

To be able to use the padStart method, we had to convert the number to a string.

If you convert the padded string back into a number, any of the leading zeros will get automatically dropped. This is because 0005 === 5. JavaScript (and TypeScript) don't keep insignificant leading zeros around.

This is why we explicitly set the function's return type to string.

If the length of the string exceeds the provided target length, the entire string gets returned from the padStart method.

If you need to handle negative numbers, you need to add an if statement that adds the minus sign after the leading zeros have been added.
index.ts
function addLeadingZeros(num: number, totalLength: number): string { if (num < 0) { const withoutMinus = String(num).slice(1); return '-' + withoutMinus.padStart(totalLength, '0'); } return String(num).padStart(totalLength, '0'); } console.log(addLeadingZeros(5, 2)); // 👉️ "05" console.log(addLeadingZeros(-5, 3)); // 👉️ "-005"

We added an if statement to check if a negative number is provided to the function.

Note that we deliberately don't include the minus sign in the target length for the new string.

To handle negative numbers, we just had to strip the minus, add the leading zeros and add the minus to the front of the string.

An alternative and perhaps simpler approach is to use the addition (+) operator.

index.ts
const positive = '00' + 8; console.log(positive); // 👉️ "008" const negative = '-' + '00' + String(-8).slice(1); console.log(negative); // 👉️ "-008"

We used the exact same approach to handle negative numbers as we did with the padStart method.

Use the search field on my Home Page to filter through my more than 1,000 articles.