对利率添加百分比,并保留几位小数

/**
   * @description: 对利率添加百分号
   * @param {type} {1.2300000,4}
   * @return: 1.2300%
   */
  function rateFormatter(param, num) {
    // 过滤掉%
    // 统一转化为字符串并去掉左右空格 为了避免异常数据
    param = param.toString().trim();
    // 去掉引号转义符
    param = param.replace(/["]/g, '');
    /* 第一个百分号出现的角标 */
    let firstIndex = param.indexOf('%');
    /* 以百分号结尾 */
    if (firstIndex === param.length - 1) {
      param = param.substring(0, param.length - 1);
    }
    /* 首先判断该字符串可以转成数据类型 */
    if (!isNaN(param)) {
      /* 获取小数'.'号出现的角标 */
      let index = param.indexOf('.');
      /* 小数点后面位数超过要保留的位数 */
      if (index !== -1 && param.slice(index + 1).length >= num) {
        /* 采用字符串截断 */
        param = param.substring(0, index + num + 1);
      }
      /* 没有小数点 或 小数点后位数补足 */
      else {
        /* 没有小数点时补小数点 */
        if (index === -1) {
          index = param.length;
          param = param + '.';
        }
        /* 缺几位小数就补几位 */
        while (param.length <= index + num) {
          param += '0';
        }
      }
    }
    return param + '%';
  }
  console.log(rateFormatter(12.3451, 2))

  

posted @ 2020-07-25 22:11  沁猿春  阅读(385)  评论(0编辑  收藏  举报