util.js 982 B

1234567891011121314151617181920212223242526272829303132
  1. // 金额格式化成K格式
  2. export const formatNumberToK = (param) => {
  3. // 1. 异常处理:空值(null/undefined)直接返回空字符串
  4. if (param === null || param === undefined) {
  5. return '';
  6. }
  7. // 2. 统一预处理:无论参数是数字/字符串,都转为字符串并去除首尾空格
  8. let numStr = String(param).trim();
  9. // 3. 空字符串情况直接返回
  10. if (numStr === '') {
  11. return '';
  12. }
  13. // 4. 将处理后的字符串转为数字
  14. const num = Number(numStr);
  15. // 5. 非有效数字的情况,返回原始参数的字符串形式(保持输入原貌)
  16. if (isNaN(num)) {
  17. return String(param);
  18. }
  19. // 6. 小于1000的数字,返回整数形式的字符串(无小数)
  20. if (num < 1000) {
  21. return String(Math.floor(num));
  22. }
  23. // 7. 大于等于1000的数字,除以1000取整后拼接K
  24. const kNum = Math.floor(num / 1000);
  25. return `${kNum}K`;
  26. };