NumberFormatterUtils.ets 1.04 KB

export class NumberFormatterUtils {

  /**
   * 数据小于一万返回原数据,大于一万保留小数点后一位,加上万字
   * @param num
   * @returns
   */
  static formatNumberWithWan(inputNumber: number | String): string  {
    const num = typeof inputNumber === 'number' ? inputNumber : Number(inputNumber);
    if (Number.isNaN(num)) {
      return '';
    } else if (num < 10000) {
      return num.toString();
    } else if (num < 100000000) {
      // 处理 1万到1亿之间的数字,使用万作为单位,小数点后为0则不显示
      const wanUnit = num / 10000;
      const formattedWan = wanUnit.toFixed(1);
      const wanUnitW = wanUnit.toFixed(0)
      return formattedWan.endsWith('.0') ? `${wanUnitW}万` : `${formattedWan}万`;
    } else {
      // 数字达到1亿及以上时,转换为亿并处理小数点后为0的情况
      const yiUnit = num / 100000000;
      const formattedYi = yiUnit.toFixed(1);
      return formattedYi.endsWith('.0') ? `${formattedYi.slice(0, -2)}亿` : `${formattedYi}亿`;
    }
  }
}