export function formatNumber(value) {
  const parsed = Number(value);
  if (!Number.isFinite(parsed)) {
    return "-";
  }
  return new Intl.NumberFormat("zh-CN").format(parsed);
}

export function formatPercent(value) {
  const parsed = Number(value);
  if (!Number.isFinite(parsed)) {
    return "-";
  }
  return `${parsed.toFixed(2)}%`;
}

// 服务端 RTP 一律以 ppm（百万分比）存储避免浮点误差，展示层统一在这里换算成百分比。
export function formatPercentFromPPM(value) {
  const parsed = Number(value);
  if (!Number.isFinite(parsed) || parsed <= 0) {
    return "-";
  }
  return `${(parsed / 10_000).toFixed(2)}%`;
}

export function formatMultiplierFromPPM(value) {
  const parsed = Number(value);
  if (!Number.isFinite(parsed)) {
    return "-";
  }
  return `${(parsed / 1_000_000).toFixed(2).replace(/\.?0+$/, "")}x`;
}
