Format Currency (easy)

Given a number, format it to a currency. For example 93635617 => $93,635,617.

Formatting from right to left makes the solution fairly straightforward.

function formatNumber(numberToFormat) {
  let digits = String(numberToFormat);    
  let count = 0;
  let formatted = "";
  let numbers = digits.split(".");
  digits = numbers[0];
  let fraction = numbers[1];

  for (let i = digits.length - 1; i >= 0; i--) {
    count++;
    formatted = digits[i] + formatted;

    if (count === 3 && i > 0) {
      formatted = "," + formatted;
      count = 0;
    }                
  }

  if (fraction) {
    if (fraction.length > 2) {
      fraction = fraction.substring(0, 2);
    }
    return "$" + formatted + "." + fraction;
  }

  return "$" + formatted;
}

console.log(formatNumber(35654671.77));     // $35,654,671.77
console.log(formatNumber(35654671.77888));  // $35,654,671.77
console.log(formatNumber(35654671));        // $35,654,671
console.log(formatNumber(5654671));         // $5,654,671
console.log(formatNumber(654671));          // $654,671
Scroll to top