四舍五入保留小数后 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}