保留指定小数位数js函数封装

201 阅读1分钟

保留指定小数位数js函数封装

不用正则保留指定小数位数

  • 函数入参定义,
    • num:需要处理的数据
    • len:保留小数位数,默认2位
  • 判断类型,统一转字符串处理
  • 空值return 空字符串
  • numStr.replace(/[^0-9.]/g,'') // 限制值只能为0-9和字符‘.’
  • let isDecimalIndex = numStr.indexOf('.') // 判断存不存在小数位
  • 不存在小数的话,就直接转number后转string,吐出去,目的是为了把不正确的格式return出去
  • 存在小数的话,需要截取整数位和小数位,然后再处理小数位中的无效字符,并截取指定传进来的执行长度
/**
* 保留指定小数位方法
* @param num:需要处理的数据
* @param len:保留小数位数,默认2位
*/
export function KeepDecimals(num:string|number,len =2 ){
    let numStr = typeof(num) == "number" ? `${num}` : num // 判断类型,统一转字符串处理
    if(!numStr)return ''; // 空值return 空字符串
    numStr=numStr.replace(/[^0-9.]/g,'') // 限制值只能为0-9和字符‘.’
    let isDecimalIndex = numStr.indexOf('.') // 判断存不存在小数位
    if(isDecimalIndex === -1)return `${Number(numStr)}` // 不存在小数位,返回处理后的数字
    let integer = numStr.slice(0,isDecimalIndex) // 获取整数位
    let Decimals = numStr.slice(isDecimalIndex+1) // 获取小数位
    Decimals=Decimals.replace(/[^0-9]/g,'').slice(0,len) // 处理小数位中的无效字符,并截取指定长度
    return `${Number(integer)}.${Decimals || ''}` // 组装数据。并在处理小数位事,将无效字符处理成空串
}