likes
comments
collection
share

JS格式化数字

作者站长头像
站长
· 阅读数 15

JS格式化数字

/**
 * @description: 数字处理-保留n位小数(小数位数不足自动补0;不区分小数位是否有效)
 * @param {Number} num 数字
 * @param {Number} n 保留小数位数
 * @return {Number} formatNum
 */
export const getNumDec = (num = 0, n = 0) => {
    let newNum = Number(num)
    newNum = Number.isNaN(newNum) ? 0 : newNum
    const formatNum = newNum.toFixed(n)
    return formatNum
}

/**
 * @description: 数字处理-保留n位有效小数
 * @param {Number} num 数字
 * @param {Number} n 保留有效小数位数
 * @return {Number} formatNum
 */
export const getNumVaildDec = (num = 0, n = 0) => {
    let newNum = Number(num)
    newNum = Number.isNaN(newNum) ? 0 : newNum
    const formatNum = Math.round(newNum * Math.pow(10, n)) / Math.pow(10, n)
    return formatNum
}

/**
 * @description: 数字处理-保留n1位有效小数,自动补n2个0
 * @param {Number} num 数字
 * @param {Number} n1 保留有效小数位数
 * @param {Number} n2 补0位数
 * @return {Number} formatNum
 */
export const getNumVaildDec0 = (num = 0, n1 = 0, n2) => {
    n2 = n2 || n1
    let newNum = Number(num)
    newNum = Number.isNaN(newNum) ? 0 : newNum
    // const decIndex = String(newNum).indexOf(".") + 1;//获取小数点的位置
    // const decCount = String(newNum).length - decIndex;//获取小数点后的个数
    let newNum2 = Math.round(newNum * Math.pow(10, n1)) / Math.pow(10, n1)
    const formatNum = Number.isInteger(newNum2) ? newNum2.toFixed(n2) : newNum2.toFixed(n1)
    return formatNum
}