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