src/lib/format.ts

12 lines
const formatters = new Map<number, Intl.NumberFormat>();

/** Fixed decimals with thousands separators: 6583.4267 → "6,583.43". */
export function formatNumber(v: number, decimals = 2): string {
  let f = formatters.get(decimals);
  if (!f) {
    f = new Intl.NumberFormat("en-US", { minimumFractionDigits: decimals, maximumFractionDigits: decimals });
    formatters.set(decimals, f);
  }
  return f.format(v);
}