{"id":1054,"date":"2019-10-04T23:54:06","date_gmt":"2019-10-05T03:54:06","guid":{"rendered":"https:\/\/resrvoir.com\/?page_id=1054"},"modified":"2025-06-17T22:48:03","modified_gmt":"2025-06-18T02:48:03","slug":"format-number","status":"publish","type":"page","link":"https:\/\/resrvoir.com\/?page_id=1054","title":{"rendered":"Format Currency (easy)"},"content":{"rendered":"\r\n<p>Given a number, format it to a currency. For example 93635617 =&gt; $93,635,617.<br \/><br \/>Formatting from right to left makes the solution fairly straightforward.<\/p>\r\n\r\n\r\n\r\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">function formatNumber(numberToFormat) {\r\n  let digits = String(numberToFormat);    \r\n  let count = 0;\r\n  let formatted = \"\";\r\n  let numbers = digits.split(\".\");\r\n  digits = numbers[0];\r\n  let fraction = numbers[1];\r\n\r\n  for (let i = digits.length - 1; i &gt;= 0; i--) {\r\n    count++;\r\n    formatted = digits[i] + formatted;\r\n\r\n    if (count === 3 &amp;&amp; i &gt; 0) {\r\n      formatted = \",\" + formatted;\r\n      count = 0;\r\n    }                \r\n  }\r\n\r\n  if (fraction) {\r\n    if (fraction.length &gt; 2) {\r\n      fraction = fraction.substring(0, 2);\r\n    }\r\n    return \"$\" + formatted + \".\" + fraction;\r\n  }\r\n\r\n  return \"$\" + formatted;\r\n}\r\n\r\nconsole.log(formatNumber(35654671.77));     \/\/ $35,654,671.77\r\nconsole.log(formatNumber(35654671.77888));  \/\/ $35,654,671.77\r\nconsole.log(formatNumber(35654671));        \/\/ $35,654,671\r\nconsole.log(formatNumber(5654671));         \/\/ $5,654,671\r\nconsole.log(formatNumber(654671));          \/\/ $654,671\r\n<\/pre>\r\n","protected":false},"excerpt":{"rendered":"<p>Given a number, format it to a currency. For example 93635617 =&gt; $93,635,617. Formatting from right to left makes the solution fairly straightforward.<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":2,"menu_order":20,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"_links":{"self":[{"href":"https:\/\/resrvoir.com\/index.php?rest_route=\/wp\/v2\/pages\/1054"}],"collection":[{"href":"https:\/\/resrvoir.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/resrvoir.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/resrvoir.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/resrvoir.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1054"}],"version-history":[{"count":9,"href":"https:\/\/resrvoir.com\/index.php?rest_route=\/wp\/v2\/pages\/1054\/revisions"}],"predecessor-version":[{"id":1413,"href":"https:\/\/resrvoir.com\/index.php?rest_route=\/wp\/v2\/pages\/1054\/revisions\/1413"}],"up":[{"embeddable":true,"href":"https:\/\/resrvoir.com\/index.php?rest_route=\/wp\/v2\/pages\/2"}],"wp:attachment":[{"href":"https:\/\/resrvoir.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}