TS/JS 字节(B)转 KB、MB、GB 并保留两位小数

/**
 * 将字节转成B  KB MB GB
 * @param byte number
 * @returns string
 */
export const changeByte = (byte: number) => {
  let size = "";
  if (byte < 0.1 * 1024) {
    // 小于0.1KB,则转化成B
    size = `${byte.toFixed(2)}B`;
  } else if (byte < 0.1 * 1024 * 1024) {
    // 小于0.1MB,则转化成KB
    size = `${(byte / 1024).toFixed(2)}KB`;
  } else if (byte < 0.1 * 1024 * 1024 * 1024) {
    // 小于0.1GB,则转化成MB
    size = `${(byte / (1024 * 1024)).toFixed(2)}MB`;
  } else {
    // 其他转化成GB
    size = `${(byte / (1024 * 1024 * 1024)).toFixed(2)}GB`;
  }

  const sizeStr = `${size}`; // 转成字符串
  const index = sizeStr.indexOf("."); // 获取小数点处的索引
  const dou = sizeStr.substr(index + 1, 2); // 获取小数点后两位的值
  // eslint-disable-next-line eqeqeq
  if (dou == "00") {
    // 判断后两位是否为00,如果是则删除00
    return sizeStr.substring(0, index) + sizeStr.substr(index + 3, 2);
  }
  return size;
};
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容