num-beauty
Version:
An ultra lightweight module for formatting numbers into human-friendly strings
1 lines • 537 B
JavaScript
export function formatNumber(t,e,r,i=!1){if("bigint"==typeof t)return new Intl.NumberFormat(r,{useGrouping:!0,maximumFractionDigits:0}).format(t);let n=Math.abs(t).toFixed(e);const a=n.indexOf(".");let o=-1===a?n:n.slice(0,a),m=-1===a?"":n.slice(a+1);o=o.replace(/^0+(?=\d)/,""),""===o&&(o="0"),i&&m.length>0&&(m=m.replace(/0+$/,"")),o=parseInt(o).toLocaleString(r,{useGrouping:!0,maximumFractionDigits:0});let l=o;return m.length>0&&(!i||""!==m)&&(l+=new Intl.NumberFormat(r).format(1.1).charAt(1)+m),t<0&&!o.includes("-")&&(l="-"+l),l}