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 format_number(number_to_format) { let digits = String(number_to_format) 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(format_number(35654671.77)) console.log(format_number(35654671.77888)) console.log(format_number(35654671)) console.log(format_number(5654671)) console.log(format_number(654671)) $35,654,671.77 $35,654,671.77 $35,654,671 $5,654,671 $654,671