计算占比并保证百分比和为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相关推荐

  1. 用计算机如何算占销售额百分比,Excel计算业绩占比,设置百分比,饼图百分比效果!...

    Excel办公人员最熟悉的一款数据处理软件,它的功能也十分强大,操作非常便捷.我在使用EXCEL软件对数据进行统计计算时,经常会用到将数据转为百分比的格式,我们今天要学习的内容就是,快速将EXCEL表 ...

  2. java 计算占比 百分比

    //2. 计算占比int num = Integer.parseInt(uintCardre.getUintPersonSum());int allNum = Integer.parseInt(uin ...

  3. 上升了百分之几怎么算_如何简单计算同期上升下降的百分比?

    如何简单计算同期上升下降的百分比? 234游戏网友 提出于 2019-07-24 01:19:36 我的数学一直以来不太好,所以都有些不好意思提这个问了,但现在工作中有些要用到才行,所以,我想知道如何 ...

  4. SQL技巧:使用AVG()函数计算占比

    计算方式对比 一般计算占比,比如转换率.留存率等,都是先分组求和再相除得到结果,但是在一定的条件下,可以直接使用AVG()求出百分比. 比如,要求统计报名转化率,报名转化率公式为转化率=报名人数/浏览 ...

  5. python使用numpy包编写自定义函数计算SMAPE(对称平均绝对百分比误差)指标Symmetric mean absolute percentage error、SMAPE指标解读、指标使用的注

    python使用numpy包编写自定义函数计算SMAPE(对称平均绝对百分比误差)指标Symmetric mean absolute percentage error (SMAPE).SMAPE指标解 ...

  6. 计算两个数据的百分比

    def str2int(str):"""char to int:param str::return:"""try:num = int(str ...

  7. 计算俩个数字的百分比

    计算俩个数字的百分比: 代码如下: package com.bos.test;import com.bos.common.file.FileThreadResource; import org.jun ...

  8. html中百分比是怎样计算的,css 中的百分比计算方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 css 中的百分比计算方法 CSS支持多种单位形式,如百分比.px.pt.rem等,百分比和px是常用的单位,随着移动端和响应式的流行,rem.vh.vw ...

  9. mysql 按时间累计计算_mysql查询——计算占比与累计占比

    点击上面"蓝字"关注我们! 下表是2020年3月各产品的销量数据表(product_sales),其中包含字段序号Id.产品product.销量Sales,现在需要编写一个查询语句 ...

最新文章

  1. 力扣解题——求根到叶子节点数字之和
  2. SSL ×××的强劲发展势头似乎表明,它将取代IPSec ×××
  3. asp.net 播放flash
  4. Algorithms_二叉树的层次遍历(广度优先)
  5. svn回退到历史版本
  6. iio iio:device0: Error: xscale == 0
  7. How is a Batch request handled in the backend
  8. Visual Entity 手册(十一)代码生成设置
  9. LeetCode简单题目(#160 #167 #168 #169 #171)-5道(序列、数字)
  10. word一键排版_这个 Word 插件神器,帮你快速搞定排版问题
  11. 移远EC20 4G模块拨号相关
  12. 数据结构课程设计-(三)哈夫曼编码器
  13. ssm网上书城系统毕业设计-附源码180919
  14. All-one Matrices
  15. nlp gpt论文_gpt 3变形金刚和nlp的狂野世界
  16. Click Once使用总结
  17. 镜头景深计算公式的推导
  18. onCreate与onStart区别,onStart与onResume区别
  19. python量化交易--择时策略
  20. 学习笔记(4):EXCEL VBA编程进阶-2.12 VBA中的数组技术

热门文章

  1. Python 学习编程 【for语句breakcontinue语句使用】(一)
  2. find 和 xargs 和 locate
  3. PostgreSQL 分页——示例
  4. 探索比特币源码8-哈希2
  5. 模拟网页行为之实践篇
  6. 计算机系答辩麻烦,计算机专业的你,答辩时有多卑微?
  7. printf 指针地址_c语言对指针的理解
  8. python中pickle模块_Python pickle模块的用法
  9. vgc机器人编程1到13题_工业机器人编程与实操-期末试题
  10. 队列处理高并发_高并发场景下缓存处理的一些思路