数字格式整理集合

title: 数字格式整理集合 id: 82623500e8ee8032808c8c7c208d5d47 tags: [] date: 2000/01/01 00:00:00 updated: 2024/01/13 17:23:43 isPublic: true --#|[分隔]|#--

数字格式整理集合

科学计数法转为原值字符串

function toNonExponential(input: number | string | bigint): string {
  if (typeof input === 'bigint') {
    return input.toString();
  }

  let dataStr = typeof input === 'string' ? input : input.toString();

  if (isNaN(Number(dataStr))) {
    throw new Error('Input must be a number, a bigint or a string that can be converted to a number');
  }

  if (dataStr.indexOf('e') !== -1) {
    const [numberPart, exponentPart] = dataStr.split('e');
    let [base, decimal = ''] = numberPart.split('.');
    let exponent = Number(exponentPart);
    if (exponent >= 0) {
      return base + decimal.padEnd(exponent + 1, '0');
    } else {
      const decimalPointPos = base.length + exponent;
      if (decimalPointPos <= 0) {
        return '0.' + base.padStart(-exponent, '0') + decimal;
      } else {
        return base.slice(0, decimalPointPos) + '.' + base.slice(decimalPointPos) + decimal;
      }
    }
  } else {
    return dataStr;
  }
}

十进制数字转为任意进制数字字符串

任意进制转换

字符串转为十进制数字

四舍五入到指定位数并补零

当第三个参数为true时,则当结果的小数位小于decimals时,会补充零,返回的将会是字符串格式。

裁剪丢弃到指定位数

当第三个参数为true时,则当结果的小数位不够decimals时,会补充零,返回的将会是字符串格式。

注意,这个方法会趋向于让返回结果更小,所以,同样是保留两位,如果传入的value是正数0.245,返回值是0.24;如果传入的value是负数**-0.245**,返回的将是**-0.25**!

补零

当你需要在一个数字 num 不足 len 位数的时候前面补零操作,用到字符串方法 padStart

数字转为 万 亿 的缩略写法

数字转为 123,234,234,000的格式

数字转为 K M B 的缩略写法

Last updated

Was this helpful?