js如何使得四舍五入的百分比之和为100%

在JavaScript中,如果你想要确保一组四舍五入后的百分比之和严格等于100%,那么你不能直接对每个百分比进行四舍五入,因为四舍五入会引入误差。但是,你可以采用一种策略,即先对所有的百分比进行常规的四舍五入,然后调整最后一个百分比的值以确保总和为100%。

以下是一个简单的示例,说明如何实现这一点:

代码示例:

function roundPercentages(percentages) {  // 假设percentages是一个包含多个小数(表示百分比)的数组  // 例如: [0.2345, 0.3456, 0.4201]  // 1. 先对除了最后一个元素之外的所有元素进行四舍五入  for (let i = 0; i < percentages.length - 1; i++) {  percentages[i] = Math.round(percentages[i] * 100) / 100;  }  // 2. 计算四舍五入后的总和  let sum = percentages.slice(0, -1).reduce((a, b) => a + b, 0);  // 3. 计算需要添加到最后一个百分比的值,以确保总和为100%  let remaining = 1 - sum;  // 4. 对最后一个百分比进行四舍五入(或调整),以确保总和为100%  // 注意:这里我们直接设置最后一个百分比为剩余的值,而不是四舍五入  // 如果你需要四舍五入,可以计算remaining * 100,然后四舍五入,再除以100  percentages[percentages.length - 1] = remaining;  // 返回四舍五入后的百分比数组  return percentages;  
}  // 示例  
let percentages = [0.2345, 0.3456, 0.4201];  
let roundedPercentages = roundPercentages(percentages);  
console.log(roundedPercentages); // 输出可能是 [0.23, 0.35, 0.42] 或者类似的值,但总和为1

注意:在上面的示例中,最后一个百分比是直接设置为剩余的值,而不是四舍五入。这是因为四舍五入可能会再次引入误差。如果你确实需要对最后一个百分比进行四舍五入,你可以计算remaining * 100,然后四舍五入这个值,最后再将结果除以100。但是,这样做可能会使总和稍微偏离100%。因此,根据你的具体需求,你可能需要权衡这种误差的接受程度。

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

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

相关文章

C# WPF入门学习主线篇(二十九)—— 绑定到对象和集合

C# WPF入门学习主线篇&#xff08;二十九&#xff09;—— 绑定到对象和集合 在WPF中&#xff0c;数据绑定是开发动态和交互性用户界面的核心技术。通过数据绑定&#xff0c;我们可以轻松地将UI控件与后台的数据源连接起来&#xff0c;实现数据的自动更新和显示。在本篇文章中&…

wordpress 导航主题 有批量从源码导入功能

下载地址&#xff1a;wordpress导航主题 可以批量导入

ardupilot开发 --- Jetson Orin Nano 后篇

我拼命加速&#xff0c;但贫穷始终快我一步 0~1920. visp-d455&#xff1a;基于IBVS的Pixhawk无人机视觉伺服20.1 基础关于连接、通讯、UDP forward服务&#xff1a;一些相关的、有用的例程Linux C程序的gdb断点调试搭建仿真解决【testPixhawkDroneTakeoff.cpp例程能解锁但起飞…

WIFI6E中的MESH组网功能

什么是WIFI6E和MESH组网&#xff1f; WIFI 6E 是扩展到6GHz 频段的WIFI 6无线通信技术&#xff0c;而“WIFI 6E”中的“6”是指WIFI技术的“第6代”&#xff0c;“E”则是指使用新频段的标准的最新扩展。WIFI 6E通过增加6GHz频段&#xff0c;提供更高的带宽、更低的延迟和更大…

VMware虚拟机下载安装Windows Server 2016

「作者简介」&#xff1a;2022年北京冬奥会网络安全中国代表队&#xff0c;CSDN Top100&#xff0c;就职奇安信多年&#xff0c;以实战工作为基础对安全知识体系进行总结与归纳&#xff0c;著作适用于快速入门的 《网络安全自学教程》&#xff0c;内容涵盖系统安全、信息收集等…

从新手小白到红酒大咖:解锁红酒品鉴的终极秘籍,升级之路全攻略

在五彩斑斓的饮品世界中&#xff0c;红酒以其深邃的色泽、丰富的口感和悠久的历史&#xff0c;吸引了无数人的目光。对于红酒的初学者来说&#xff0c;从小白到品鉴师的道路或许充满了未知与挑战&#xff0c;但只要掌握了正确的知识和方法&#xff0c;就能够轻松踏入这个美妙的…

用群辉NAS打造影视墙(Jellyfin篇)

目录 1、安装Jellyfin媒体服务器 2、配置 (1)语言 (2)管理员账户 (3)添加媒体库 (4)指定元数据语言 (5)远程访问设置 (6)修改文件夹权限 (7)刷新电影 (8)启用硬件加速 3、PC浏览器访问 4、手机客户端 5、智能TV客户端 6、解决演员不能显示中文的问…

Jenkins+gitee流水线部署springboot项目

目录 前言 一、软件版本/仓库 二、准备工作 2.1 安装jdk 11 2.2 安装maven3.9.7 2.3 安装docker 2.4 docker部署jenkins容器 三、jenkins入门使用 3.1 新手入门 3.2 jenkins设置环境变量JDK、MAVEN、全局变量 3.2.1 jenkins页面 3.2.2 jenkins容器内部终端 3.2.3 全…

python-赏月

[题目描述] 在某个星球上看到的月亮大小有一个规律&#xff0c;月亮为每30天一个周期&#xff0c;在这30天的周期里&#xff0c;月亮的大小分别为 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,14,13,12,11,10,9,8,7,6,5,4,3,2,1。 虽然天气很冷&#xff0c;但这个星球上的某个居民今…

MyBatis 源码分析--SqlSessionFactory

前言&#xff1a; 前文我们简单的回顾了 MyBatis 的基本概念&#xff0c;有聊到核心组件&#xff0c;工作流程等&#xff0c;本篇我们开始深入剖析 MyBatis 的核心源码&#xff0c;欢迎大家持续关注。 Mybatis 知识传送门 初识 MyBatis 【MyBatis 核心概念】 MyBatis 源码解…

钒能新材料综合回收利用,钒溶液净化富集工艺之离子交换法

钒电池储能产业作为典型的绿色低碳优势产业&#xff0c;是新型储能领域重要发展方向。钒电池储能具备大规模、长周期等优势&#xff0c;是储能领域的重要组成部分&#xff0c;将成为拓展电能利用、应对可再生能源随机波动、支撑可再生能源高占比电力系统的最佳技术途径之一。 …

openEuler 24.03 LTS - 华为欧拉开源版(华为 RHEL 兼容发行版)

openEuler 24.03 LTS - 华为欧拉开源版&#xff08;华为 RHEL 兼容发行版&#xff09; 华为红帽企业 Linux 兼容发行版 请访问原文链接&#xff1a;https://sysin.org/blog/openeuler/&#xff0c;查看最新版。原创作品&#xff0c;转载请保留出处。 作者主页&#xff1a;sy…

【C++题解】1026 - 求商数和余数

问题&#xff1a;1026 - 求商数和余数 类型&#xff1a;基础问题 题目描述&#xff1a; 输入 a,b 两个整数&#xff0c;编程求出 a 除以 b 得到的商和余数。 输入&#xff1a; 输入一行&#xff0c;只有两个整数(中间有空格)。 输出&#xff1a; 输出只有一行&#xff0c…

优思学院|质量管理中如何应用5W1H或5W2H方法?

5W1H或者5W2H其实是一种"工作方式"&#xff0c;它不是"思考方法"&#xff0c;这种工作方式是通过回答“什么&#xff08;What&#xff09;&#xff1f;为什么&#xff08;Why&#xff09;&#xff1f;谁&#xff08;Who&#xff09;&#xff1f;何时&#…

求解FAT表大小

540M/1K 540k 540 * 1024 b 512k对应2的19次方<540k<1024k对应2的20次方 取比540k大的1024k 八位一个字节 20对应2.5个字节 所以FAT占用 2.5*5401350k 1.2G/1k1.2M 1M1024k对应2的20次方<1.2M<2M对应2的21次方 取2M 21/8是循环小数不可以直接用 所以四舍五…

什么电脑录屏软件好用?这里有3款超实用推荐!

在当今数字化时代&#xff0c;电脑录屏软件已经成为了人们日常学习和工作中不可或缺的工具。无论是录制游戏实况、制作教程视频&#xff0c;还是保存线上会议的内容&#xff0c;一款好用的电脑录屏软件都显得尤为重要。可是什么电脑录屏软件好用呢&#xff1f;本文将为大家介绍…

Redis-数据类型-Set(不允许重复)

文章目录 1、查看redis是否启动2、通过客户端连接redis3、切换到2数据库4、给key指定的set集合中存入数据&#xff0c;set会自动去重5、返回可以指定的set集合中所有的元素6、返回集合中元素的数量(set cardinality)7、检查当前指定member是否是集合中的元素8、从集合中删除元素…

文件扫描工具哪个好?便捷的文件扫描工具推荐

对于初入职场的大学毕业生&#xff0c;申请就业补贴是一项不可忽视的福利。 它不仅能够为新生活带来经济上的缓解&#xff0c;也有助于职业生涯的顺利起步。面对申请过程中需提交的文件&#xff0c;如纸质劳动合同&#xff0c;不必烦恼。市面上众多文件扫描软件能助你一臂之力…

【Web APIs】DOM 文档对象模型 ④ ( querySelector 函数 | querySelectorAll 函数 | NodeList 对象 )

文章目录 一、querySelector 函数1、querySelector 函数简介2、完整代码示例 二、querySelectorAll 函数1、querySelectorAll 函数简介2、完整代码示例 三、NodeList 对象1、NodeList 对象简介2、完整代码示例 本博客相关参考文档 : WebAPIs 参考文档 : https://developer.moz…

【Hadoop大数据技术】——期末复习(冲刺篇)

&#x1f4d6; 前言&#xff1a;快考试了&#xff0c;做篇期末总结&#xff0c;都是重点与必考点。 题型&#xff1a;简答题、编程题&#xff08;Java与Shell操作&#xff09;、看图分析题。题目大概率会从课后习题、实验里出。 课本&#xff1a; 目录 &#x1f552; 1. HDF…