常用的js保留两位小数的方法(精确保留)

14,512 阅读1分钟

前言

在日常开发中,我们难免会遇到一些对于number型的数据要处理成精确到几位的的方式渲染。今天,这里就以比较常见的保留两位的小数为例,记录一下。

  • 判断当前是否为整数(在不明确具体数据的情况下)
const isInteger = (obj: unknown) => {
  return typeof obj === 'number' && obj % 1 === 0;
};
  • 四舍五入显示小数后2位

const keepTwoDecimal = (num: number) => {
  return Number(num.toFixed(2));
};

  • 精确显示小数后2位

const keepTwoDecimalWithReg = (num: number) => {
  return Number(num.toString().match(/^\d+(?:\.\d{0,2})?/));
};
  • 精确显示小数点后2位,没有时补0

const keepTwoDecimalStr = (num: number) => {
  const result = Number(num.toString().match(/^\d+(?:\.\d{0,2})?/));
  let s = result.toString();
  let rs = s.indexOf('.');
  if (rs < 0) {
    rs = s.length;
    s += '.';
  }
  while (s.length <= rs + 2) {
    s += '0';
  }
  return s;
};
  • 结合位运算中的双非 ~~ 

tc39.es/ecma262/mul…

const keepTwoDecimalBit = (num: number) => {
  return ~~(num * 100) / 100;
};

总结

这里仅仅列举一部分我觉得比较高效的方式,作为一种记录的方式以便使用