• 缩短数字

    参数

    • value: number

      数值

    • options: {
          fractionDigits?: number;
          exponential?: boolean;
          maxLength?: number;
          unit?: NUMBER_UNIT;
          kSize?: number;
      } = {}

      选项

      • 可选fractionDigits?: number

        小数位;默认2

      • 可选exponential?: boolean

        使用科学计数法

      • 可选maxLength?: number

        数字长度大于多少才进单位;默认为 3

      • 可选unit?: NUMBER_UNIT

        单位

      • 可选kSize?: number

        1k 的大小;默认为 1000

    返回 string

    const fn = Num.shortenNumber;
    const k = 1000;

    fn(k); // '1K'
    fn(k * k); // '1M'
    fn(k * k * k); // '1G'
    fn(k * k * k * k); // '1T'
    fn(k * k * k * k * k); // '1P'
    fn(k ** 6); // '1E'
    fn(k ** 7); // '1Z'
    fn(-(k ** 7)); // '-1Z'
    fn(k ** 8); // '1Y'

    // 指定单位
    fn(k * 0.5 * k, { unit: 'M' }); // '0.5M'
    fn(k * 0.5 * k, { unit: 'G' }); // '0G'
    // 指定小数位
    fn(k * 0.49 * k, { unit: 'G', fractionDigits: 5 }); // '0.00049G'
    fn(1, { unit: 'G', fractionDigits: 9 }); // '0.000000001G'
    // 使用科学计数法
    fn(1, { unit: 'G', fractionDigits: 9, exponential: true }); // '1e-9G'

    // 包括单位,长度超过 5 位单位才进位
    fn(100, { maxLength: 5 }); // '100'
    fn(100_00, { maxLength: 5 }); // '10000'
    fn(100_000, { maxLength: 5 }); // '100K'
    fn(1_000_000, { maxLength: 5 }); // '1000K'
    fn(10_000_000, { maxLength: 5 }); // '10M'
    fn(100_000_000, { maxLength: 5 }); // '100M'
    fn(1_000_000_000, { maxLength: 5 }); // '1000M'
    fn(10_000_000_000, { maxLength: 5 }); // '10G'
    fn(1_000_000_000_000, { maxLength: 5 }); // '1000G'
    fn(10_000_000_000_000, { maxLength: 5 }); // '10T'
    fn(100_000_000_000_000, { maxLength: 5 }); // '100T'
    fn(1_000_000_000_000_000, { maxLength: 5 }); // '1000T'
    fn(100_000_000_000_000_000, { maxLength: 5 }); // '100P'
    fn(1_000_000_000_000_000_000_000, { maxLength: 5 }); // '1000E'
    fn(1_000_000_000_000_000_000_000_000, { maxLength: 5 }); // '1000Z'
    fn(1_000_000_000_000_000_000_000_000_000, { maxLength: 5 }); // '1000Y'
    // 最大单位为 Y
    fn(1_000_000_000_000_000_000_000_000_000_000, { maxLength: 5, exponential: true }); // '1e+6Y'

    // 指定1k=1024
    const kb = 1024;
    fn(kb * 0.5 * kb, { kSize: kb }); // '512K'
    fn(kb * 0.5 * kb, { kSize: kb, unit: 'M' }); // '0.5M'
    fn(kb * 50 * kb, { kSize: kb, unit: 'K' }); // '51200K'