如果数字在给定范围之间,是否有一种简洁的方法返回用于四舍五入的值?

我希望能够将数字四舍五入,但四舍五入为取决于数字大小的值。

我有以下代码,但当该数字绝对为任意大小且非常重复时,它不允许返回可用于舍入的数字。

有没有一种方法可以以更简洁的方式进行重构?

const roundingResolution = (max: number): number => {
  if (max > 0.1 && max < 0.5) return 0.05;
  if (max > 0.5 && max < 1) return 0.1;
  if (max > 1 && max < 5) return 0.5;
  if (max > 5 && max < 10) return 1;
  if (max > 10 && max < 50) return 5;
  if (max > 50 && max < 100) return 10;
  if (max > 100 && max < 500) return 50;
  if (max > 500 && max < 1000) return 100;
  if (max > 1000 && max < 5000) return 500;
  if (max > 5000 && max < 10000) return 1000;
  if (max > 10000 && max < 50000) return 5000;
  if (max > 50000 && max < 100000) return 10000;
  return 0;
};

const resolution = roundingResolution(value);

const roundedValue = Math.ceil(value / resolution) * resolution;
评论