保留小数点后N位方法
四舍五入保留小数后 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
}