计算占比并保证百分比和为1
计算占比并保证百分比和为1
- 常用场景
- 代码
常用场景
- 用于动态计算页面元素的百分比占比
- 可视化中扇形统计图的显示数值修正
代码
/*** 计算数组中各项的占比,保证百分比和等于1* @param arr 需要计算百分比的数组,传入时必须降序排序* @param precision 精度 比如 4 0.34567 =》 34.56** arr降序排序,避免较小的值因为顺位补值导致大于原本比他大的值,* 至于原本相等的值因为顺位补值变得不相等则不考虑,* 比如[33,33,33] => [34,33,33],将数值精确后势必三个百分比会不相等,* 【总和等于1】与【相等的值百分比也相等】在这里只保证第一种情况,* 毕竟百分比是看的与1的关系** padEnd 属于es6 可能需要自己改写 '0'.padEnd(3,'-') => '0--'*/function getPercent(arr, precision) {let total = 1,//总和percentArr,//每个模块的宽度百分比数组 精确到.00percentTotal = 0,//第一次计算百分比后,百分比总和dif,//第一次计算百分比总和后与实际和的差值,因为第一次计算百比试向下精确,所以和总会比实际和小len = arr.length,i = 0,result;//计算总和total = arr.reduce(function (a, b) {return a + b;});//简单过滤总和为零的情况if(total == 0){return}//计算百分比数组percentArr = arr.map(function (d, index) {let r = (d / total + '').substring(2, 2 + precision);//0.23456 => 2345r = +r.padEnd(precision, '0');//0.23 => 2300percentTotal += r;//累计百分比return +r;// 2345});//计算差值dif = Math.pow(10, precision) - percentTotal;//分配差值while (dif-- > 0) {percentArr[i++] += 1;i = i % len;}//转换为百分比字符串result = percentArr.map(function (per) {per += '';per=per.padStart(precision, '0');return parseFloat(per.replace(/(\d{2})/, '$1.')) + '%'});return result}console.log(getPercent([33, 33, 33], 4));
计算占比并保证百分比和为1相关推荐
- 用计算机如何算占销售额百分比,Excel计算业绩占比,设置百分比,饼图百分比效果!...
Excel办公人员最熟悉的一款数据处理软件,它的功能也十分强大,操作非常便捷.我在使用EXCEL软件对数据进行统计计算时,经常会用到将数据转为百分比的格式,我们今天要学习的内容就是,快速将EXCEL表 ...
- java 计算占比 百分比
//2. 计算占比int num = Integer.parseInt(uintCardre.getUintPersonSum());int allNum = Integer.parseInt(uin ...
- 上升了百分之几怎么算_如何简单计算同期上升下降的百分比?
如何简单计算同期上升下降的百分比? 234游戏网友 提出于 2019-07-24 01:19:36 我的数学一直以来不太好,所以都有些不好意思提这个问了,但现在工作中有些要用到才行,所以,我想知道如何 ...
- SQL技巧:使用AVG()函数计算占比
计算方式对比 一般计算占比,比如转换率.留存率等,都是先分组求和再相除得到结果,但是在一定的条件下,可以直接使用AVG()求出百分比. 比如,要求统计报名转化率,报名转化率公式为转化率=报名人数/浏览 ...
- python使用numpy包编写自定义函数计算SMAPE(对称平均绝对百分比误差)指标Symmetric mean absolute percentage error、SMAPE指标解读、指标使用的注
python使用numpy包编写自定义函数计算SMAPE(对称平均绝对百分比误差)指标Symmetric mean absolute percentage error (SMAPE).SMAPE指标解 ...
- 计算两个数据的百分比
def str2int(str):"""char to int:param str::return:"""try:num = int(str ...
- 计算俩个数字的百分比
计算俩个数字的百分比: 代码如下: package com.bos.test;import com.bos.common.file.FileThreadResource; import org.jun ...
- html中百分比是怎样计算的,css 中的百分比计算方法
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 css 中的百分比计算方法 CSS支持多种单位形式,如百分比.px.pt.rem等,百分比和px是常用的单位,随着移动端和响应式的流行,rem.vh.vw ...
- mysql 按时间累计计算_mysql查询——计算占比与累计占比
点击上面"蓝字"关注我们! 下表是2020年3月各产品的销量数据表(product_sales),其中包含字段序号Id.产品product.销量Sales,现在需要编写一个查询语句 ...
最新文章
- 力扣解题——求根到叶子节点数字之和
- SSL ×××的强劲发展势头似乎表明,它将取代IPSec ×××
- asp.net 播放flash
- Algorithms_二叉树的层次遍历(广度优先)
- svn回退到历史版本
- iio iio:device0: Error: xscale == 0
- How is a Batch request handled in the backend
- Visual Entity 手册(十一)代码生成设置
- LeetCode简单题目(#160 #167 #168 #169 #171)-5道(序列、数字)
- word一键排版_这个 Word 插件神器,帮你快速搞定排版问题
- 移远EC20 4G模块拨号相关
- 数据结构课程设计-(三)哈夫曼编码器
- ssm网上书城系统毕业设计-附源码180919
- All-one Matrices
- nlp gpt论文_gpt 3变形金刚和nlp的狂野世界
- Click Once使用总结
- 镜头景深计算公式的推导
- onCreate与onStart区别,onStart与onResume区别
- python量化交易--择时策略
- 学习笔记(4):EXCEL VBA编程进阶-2.12 VBA中的数组技术