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