function moneyToStr(val) {
if (typeof val != 'number') {
console.error('不是数字');
return
}
let str1 = val.toLocaleString() + '';
str = str1.replace(/,/g, "");
let strLength = str.length;
if (strLength <= 3) {
return str;
} else if (strLength >= 4 && strLength <= 6) {
return str.substring(0, strLength - 3) + '.' + str.substring(strLength - 3, strLength - 1) + 'K';
} else if (strLength >= 7 && strLength <= 9) {
return str.substring(0, strLength - 6) + '.' + str.substring(strLength - 6, strLength - 4) + 'M';
} else if (strLength >= 10 && strLength <= 12) {
return str.substring(0, strLength - 9) + '.' + str.substring(strLength - 9, strLength - 7) + 'G';
} else if (strLength >= 13 && strLength <= 15) {
return str.substring(0, strLength - 12) + '.' + str.substring(strLength - 12, strLength - 10) + 'T';
} else if (strLength >= 16 && strLength <= 18) {
return str.substring(0, strLength - 15) + '.' + str.substring(strLength - 15, strLength - 13) + 'P';
} else if (strLength >= 19 && strLength <= 21) {
return str.substring(0, strLength - 18) + '.' + str.substring(strLength - 18, strLength - 16) + 'E';
} else if (strLength >= 22 && strLength <= 24) {
return str.substring(0, strLength - 21) + '.' + str.substring(strLength - 21, strLength - 19) + 'Z';
} else if (strLength >= 25 && strLength <= 27) {
return str.substring(0, strLength - 24) + '.' + str.substring(strLength - 24, strLength - 22) + 'Y';
} else if (strLength >= 28 && strLength <= 30) {
return str.substring(0, strLength - 27) + '.' + str.substring(strLength - 27, strLength - 25) + 'S';
} else if (strLength >= 31 && strLength <= 33) {
return str.substring(0, strLength - 30) + '.' + str.substring(strLength - 30, strLength - 28) + 'O';
} else if (strLength >= 34 && strLength <= 36) {
return str.substring(0, strLength - 33) + '.' + str.substring(strLength - 33, strLength - 31) + 'N';
} else if (strLength >= 37 && strLength <= 39) {
return str.substring(0, strLength - 36) + '.' + str.substring(strLength - 36, strLength - 34) + 'H';
} else if (strLength >= 40 && strLength <= 42) {
return str.substring(0, strLength - 39) + '.' + str.substring(strLength - 39, strLength - 37) + 'X';
}
if (strLength > 42) {
return 999 + 'max';
}
}
代码如上所示,虽然可以返回正确结果,可是这样看起来不太优雅,请问有没有大神有优化建议