/**
* @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))