Spaces:
Sleeping
Sleeping
File size: 836 Bytes
dec56a6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | // Tiny formatters used everywhere.
export function fmt(n, digits = 1) {
if (n === null || n === undefined || Number.isNaN(n)) return '—';
if (Math.abs(n) >= 1_000_000) return `${(n / 1_000_000).toFixed(digits)}M`;
if (Math.abs(n) >= 10_000) return `${(n / 1000).toFixed(digits)}k`;
if (Math.abs(n) >= 100) return n.toFixed(0);
if (Math.abs(n) >= 10) return n.toFixed(1);
if (Math.abs(n) >= 1) return n.toFixed(2);
if (Math.abs(n) >= 0.01) return n.toFixed(3);
return n.toExponential(2);
}
export function fmtPct(n) {
if (n === null || n === undefined || Number.isNaN(n)) return '—';
return `${(n * 100).toFixed(0)}%`;
}
export function fmtSigned(n, digits = 2) {
if (n === null || n === undefined || Number.isNaN(n)) return '—';
const sign = n > 0 ? '+' : '';
return `${sign}${n.toFixed(digits)}`;
}
|