knowLedge-工具函数返回kb数值转换为KB,MB,GB等单位保留两位小数

1.场景

        实现一个工具函数,将后端返回的单位为KB(但实际上是kb,即千字节,注意大小写通常表示不同,这里我们按照常见需求处理为KB)的数字转换成KB、MB、GB等形式,你可以按照以下步骤进行。这个函数会检查数字的大小,并相应地转换单位。

        注意:通常1KB = 1024B(字节),1MB = 1024KB,1GB = 1024MB,依此类推。

2.实现

function fromSize(numberSize){//对应单位
let utils=['KB','MB','GB','TB'];记录单位值
let utilIndex=0;while(numberSize>=1024 && utilIndex<utils.length - 1)
{//计算值numberSize/=1024;utilIndex++;
}//保留两位小数
numberSize=numberSize.toFixed(2);//转换为字符串 后续追加对应的单位
return `${numberSize} ${utils[utilIndex]}`; }// 示例  
console.log(formatSize(1024));  // "1.00 MB"  
console.log(formatSize(1048576)); // "1.00 GB"  
console.log(formatSize(5242880)); // "5.00 GB"  
console.log(formatSize(1073741824)); // "1.00 GB"(注意:这里原数应为1GB但为了演示单位转换,输入了稍大的值)

注意

  1. 在这个实现中,我使用了toFixed(2)来保持结果的小数点后两位,这在很多场合下是足够的,但你可以根据需求调整这个值。
  2. 注意到示例中的最后一个调用formatSize(1073741824)实际上应该输出接近1.00 GB(如果输入的是准确的1GB数据的话),但由于输入的是1073741824KB,这实际上是1024MB,即大约1GB。然而,由于浮点数运算的精度问题,有时结果可能略有偏差,尤其是在极端大或小的数值上。
  3. 考虑到你的需求是“后端返回一个数字,单位是kb”,但这里我们按照常见的KB(千字节)来处理。如果后端确实返回的是kb(即小写的k,代表1000字节,而非1024字节),那么你可能需要对这个逻辑做一些调整,尤其是在处理非二进制单位时。不过,在现代计算机系统中,KB、MB等通常指的是基于1024的二进制单位。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/49430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Mybatis整合Oracle】在 xml 文件中 WITH 子句的简单使用

在 Oracle SQL 中&#xff0c;WITH 子句用于定义一个或多个公共表表达式&#xff08;CTE, Common Table Expression&#xff09;&#xff0c;然后可以在主查询中引用这些表达式。WITH 子句通常用于简化复杂查询的结构&#xff0c;增强可读性&#xff0c;并避免重复编写相同的子…

# Redis 入门到精通(九)-- 主从复制(1)

Redis 入门到精通&#xff08;九&#xff09;-- 主从复制&#xff08;1&#xff09; 一、redis 主从复制 – 主从复制简介 1、互联网“三高”架构 高并发高性能高可用 2、你的“Redis”是否高可用&#xff1f; 1&#xff09;单机 redis 的风险与问题 问题1.机器故障  现…

C++ 鼠标轨迹API【神诺科技SDK】

一.鼠标轨迹模拟简介 传统的鼠标轨迹模拟依赖于简单的数学模型&#xff0c;如直线或曲线路径。然而&#xff0c;这种方法难以捕捉到人类操作的复杂性和多样性。AI大模型的出现&#xff0c;使得神诺科技 能够通过深度学习技术&#xff0c;学习并模拟更自然的鼠标移动行为。 二.…

java之对称字符串以及如何优化(链式编程)

import java.util.Scanner;public class ScannerDemo12 {public static void main(String[] args) {Scanner sc new Scanner(System.in);System.out.println("请输入一个字符串");String str sc.next();//链式编程StringBuilder sbnew StringBuilder();sb.append(s…

国内大陆地区huggingface连接不上的解决方案

简介 本文主要介绍国内大陆地区huggingface连接不上的解决方案,希望能对学习大模型的同学们有所帮助。 1. 背景 最近有不少同学反应无法正常下载huggingface的模型文件,亲自尝试使用git clone下载huggingface上的大模型文件时,也同样无法正常下载,以Meta-Llama-3-8B为例…

全国区块链职业技能大赛第九套区块链产品需求分析与方案设计

任务1-1:区块链产品需求分析与方案设计 房屋租赁平台中涉及到租客、房东、区块链租房平台、房屋等参与方,他们需要在区块链租房平台中完成账户注册、身份上链、出租房屋、生成合同等多种业务活动。通过对业务活动的功能分析,可以更好的服务系统的开发流程。基于房屋租赁平台…

数据结构之判断完全二叉树详解与示例(C,C++)

文章目录 一、判断完全二叉树的思路二、C语言实现三、C语言实现四、总结 完全二叉树是一种特殊的二叉树&#xff0c;它满足以下两个条件&#xff1a; 每一层&#xff08;除了最后一层&#xff09;都被严格地填充了节点。 最后一层的节点都尽可能地靠左对齐。 本文将详细介绍如…

undefined reference to rpl_malloc

编译 psmisc 时遇到这个错误&#xff0c;搜索了一下 rpl_malloc&#xff0c; grep -irwn rpl_malloc config.status:877:D["malloc"]" rpl_malloc" Binary file src/killall.o matches autom4te.cache/traces.1:979:m4trace:configure.ac:205: -1- AH_OUT…

微服务(网关路由)

目录 一&#xff1a;网关路由 1&#xff1a;认识网关 2&#xff1a;快速入门 2.1&#xff1a;创建项目 2.2&#xff1a;引入依赖 2.3&#xff1a;启动类 2.4&#xff1a;路由配置 2.5&#xff1a;测试 3&#xff1a;路由过滤 二&#xff1a;网关登录校验 1&…

58、主从复制数据库+读写分离

mysql的主从复制和读写分离&#xff08;面试问原理&#xff09; mysql的主从复制和读写分离&#xff1a; 主从复制 面试必问 主从复制的原理。 读写分离&#xff0c;MHA 一、主从复制 1.1、主从复制的模式&#xff1a; 1、mysql的默认模式&#xff1a; 异步模式&#xf…

RocketMQ集群搭建,看完这篇文章你就懂了(基于2m-2s-async模式)

前言 上一篇初步认识了RocketMQ&#xff0c;这一篇文章我们简单来搭建一个RocketMQ集群。RocketMQ支持多种集群部署模式&#xff0c;其中最常用的是多主多从的异步复制模式&#xff08;2m代表两个master&#xff0c;2s代表两个slave&#xff0c;async代表异步刷盘的机制&#…

java将网址生成二维码图片base64

1、pom中引入组件 <dependency><groupId>com.google.zxing</groupId><artifactId>core</artifactId><version>3.4.1</version> </dependency> 2、代码实现 // 生成二维码public String jumpToQRcodeGen(String url) {int wi…

乐鑫ESP32-H2设备联网芯片,集成多种安全功能方案,启明云端乐鑫代理商

在数字化浪潮的推动下&#xff0c;物联网正以前所未有的速度融入我们的日常生活。然而&#xff0c;随着设备的激增&#xff0c;安全问题也日益成为公众关注的焦点。 乐鑫ESP32-H2致力于为所有开发者提供高性价比的安全解决方案&#xff0c;这款芯片经过专门设计以集成多种安全…

[Armbian] 部署Docker版Home Assistent,安装HACS并连接米家设备

title: [Armbian] 部署Docker版Home Assistent&#xff0c;安装HACS并连接米家设备 date: 2024-07-21T10:51:23Z lastmod: 2024-07-21T11:40:39Z [Armbian] 部署Docker版Home Assistent&#xff0c;安装HACS并连接米家设备 官网&#xff1a;Home Assistant (home-assistant.i…

git -.gitignore不生效的问题

目录 1&#xff0c;问题场景2&#xff0c;原因3&#xff0c;解决单个文件文件夹 1&#xff0c;问题场景 1&#xff0c;当执行 git add . 命令后&#xff0c;才想起来部分文件需要被忽略不上传&#xff0c;这时加到 .gitignore 中发现不生效&#xff0c;之后的 git commit 依旧…

FoundationDB 基本使用

目录 一、FoundationDB介绍 二、安装单机版FoundationDB 2.1 下载安装程序 2.2 安装FoundationDB 2.3 修改配置信息 2.4 管理FoundationDB服务 三、fdbcli的常用命令 3.1连接数据库 3.2退出fdbcli 3.3查看版本 3.4 写模式 3.5写入键值 3.6读取键值 3.7删除键值 …

Unity3D中Instance创建实例问题详解

前言 在Unity3D开发中&#xff0c;对象的创建和管理是一个基础且重要的环节。Instance&#xff08;实例&#xff09;和Singleton&#xff08;单例&#xff09;是两种常见的对象创建方式&#xff0c;它们在Unity3D中有不同的应用场景和实现方法。本文将详细解析Unity3D中如何通…

无法连接到internet怎么办?已连接但无internet访问,其实并不难

有时我们会遇到无法连接到Internet的问题&#xff0c;由多种原因引起&#xff0c;包括硬件故障、软件设置问题、网络供应商故障等。本文将介绍无法连接到Internet时可以采取的步骤。 简述 当你无法连接到Internet时&#xff0c;可以按照以下步骤进行检查和解决&#xff1a; 1…

python实现特征检测算法4

python实现Richardson-Lucy 反卷积算法 Richardson-Lucy 反卷积算法算法原理Python实现详细解释Richardson-Lucy算法的优缺点应用领域Richardson-Lucy 反卷积算法 Richardson-Lucy反卷积算法是一种迭代算法,用于恢复因成像系统中的点扩散函数(PSF)导致的模糊图像。该算法最…

TCP系列(一)-介绍TCP

服务 TCP和UDP同样使用IP提供的服务&#xff0c;但是TCP提供的是面向连接&#xff0c;可靠的字节流服务 面向连接 使用TCP进行通信双方&#xff0c;必须先建立连接&#xff0c;然后进行数据交换 可靠服务 将应用数据分割成固定大小的报文段每次发出报文&#xff0c;会启动定时…