四舍五入保留小数后 n 位

应用 toFixed() 办法

  • 四舍五入为指定的小数位数
  • 返回字符串
  • 小数理论位数不够指定的位数,有余的局部会补 0

自定义转换方法

  • 四舍五入为指定的小数位数
  • 返回数字
  • 小数理论位数不够指定的位数,有余的局部不会补 0

    function roundFun(number, precision) {return Math.round(+number + 'e' + precision) / Math.pow(10, precision);}// 或function roundFun(number, precision) {return Math.round(number * Math.pow(10, precision)) / Math.pow(10, precision);}

准确显示小数后 n 位

不补0

  • 准确保留小数后 n 位
  • 返回数字
  • 小数理论位数不够指定的位数,有余的局部不会补 0
const keepDecimal = (number, precision) => {  const regexp = new RegExp(`^\\d+(?:\\.\\d{0,${precision}})?`)  return Number(number.toString().match(regexp))}

补0

  • 准确保留小数后 n 位
  • 返回字符串
  • 小数理论位数不够指定的位数,有余的局部会补 0
const keepDecimal = (number, precision) => {  const regexp = new RegExp(`^\\d+(?:\\.\\d{0,${precision}})?`)  const result = Number(number.toString().match(regexp))  let numberStr = result.toString()  let rs = numberStr.indexOf('.')  if (rs < 0 && precision > 0) {    rs = numberStr.length    numberStr += '.'  }  while (numberStr.length <= rs + precision) {    numberStr += '0'  }  return numberStr}