app/src/utils/numbers.tstypescript
/**
 * Numeric utility functions
 * @module Util:Numbers
 */

import { debug } from "./logging";

export function roundToDecimals(number: number, decimals: number): number {
  debug(`Rounding number ${number} to ${decimals} decimals`);
  const factor = decimals == 0 ? 1 : 10 ** decimals;
  return Math.round(number * factor) / factor;
}

export function clamp(
  number: number,
  min: number,
  max: number,
  roundDecimals: number | null = null
): number {
  debug(`Clamping number ${number} to range [${min}, ${max}]`);
  if (roundDecimals !== null) {
    number = roundToDecimals(number, roundDecimals);
  }
  return Math.min(Math.max(number, min), max);
}