当前位置: 首页 > news >正文

贵州网推传媒有限公司链接优化方法

贵州网推传媒有限公司,链接优化方法,有关网站设计的书,做国外销售都上什么网站在开发项目的过程中有时候需要进行计算百分比,例如计算饼状图百分比。有时候在计算的过程中常规四舍五入计算会发生所有计算的值相加不等于100%的情况 这是 get_percent_value 函数的 JavaScript 版本: /*** 最大余额法,解决百分比计算相加不…

在开发项目的过程中有时候需要进行计算百分比,例如计算饼状图百分比。有时候在计算的过程中常规四舍五入计算会发生所有计算的值相加不等于100%的情况
这是 get_percent_value 函数的 JavaScript 版本:

/*** 最大余额法,解决百分比计算相加不等于100%(扇形/饼图百分比使用的此算法)* @param {Array} valueList 二维数组 [{value: 1}, {value: 2}, {value: 3}]* @param {string} contKey 要统计的字段* @param {number} precision 精度(默认为2保留百分比格式的两位小数)* @param {string} percentKey 百分比键名* @param {boolean} format 是否需要返回格式化后百分比格式,false则返回小数* @return {Array}*/
function getPercentValue(valueList, contKey, precision = 2, percentKey = 'percent', format = true) {if (valueList.length === 0) {return [];}// 求和const sum = valueList.reduce((acc, item) => acc + item[contKey], 0);// 如果总和为0,直接返回if (sum === 0) {return valueList.map(item => ({...item,[percentKey]: format ? '0%' : 0}));}// 计算精度const digits = Math.pow(10, precision);let currentSum = 0;let remainder = [];// 计算每个项目的整数和余数部分valueList.forEach((item, index) => {const votesPerQuota = (item[contKey] / sum) * digits * 100;const integerPart = Math.floor(votesPerQuota);valueList[index].integer = integerPart;remainder[index] = votesPerQuota - integerPart;currentSum += integerPart;});const targetSeats = digits * 100;// 找到最大余数并加1,直到总数达到目标while (currentSum < targetSeats) {const maxIndex = remainder.indexOf(Math.max(...remainder));valueList[maxIndex].integer++;remainder[maxIndex] = -1; // 确保该余数不会再被选中currentSum++;}// 生成最终的百分比值valueList.forEach(item => {item[percentKey] = (item.integer / targetSeats).toFixed(precision + 2);if (format) {item[percentKey] = (parseFloat(item[percentKey]) * 100).toFixed(precision) + '%';}delete item.integer;});return valueList;
}// 使用示例
const data = [{ value: 3 },{ value: 3 },{ value: 3 }
];const rateData = getPercentValue(data, 'value', 2, 'percent', false);
console.log(rateData);

说明:

  • reduce 用于求和。
  • Math.floor 用于获取整数部分。
  • Math.maxindexOf 用于找到最大余数的位置。
  • toFixed 保留指定的小数位数。

你可以通过 getPercentValue 函数来计算各项的百分比,并决定是否返回格式化的百分比形式。

http://www.yayakq.cn/news/116772/

相关文章:

  • 做网站的流程 优帮云网站色调为绿色
  • PHP MySQL 网站开发实例大连专业手机自适应网站制作
  • 做网站顾客提现金额后台单页建站系统
  • 上海网站备案多久广告网名
  • 网站是否wordpresswordpress阿里矢量图使用方法
  • 做网站放广告收益wordpress如何开启page页面评论
  • 做美工需要参考的网站免费咨询皮肤科医生
  • 中科建建设发展有限公司网站wordpress修改最大上传图片
  • 南京门户网站建设dw做网站视频教程
  • 计算机网站php设计代做宁波网站建设制作多少钱
  • 然后建设自营网站网页制作教程咖啡图
  • 书籍设计网站推荐上海的公司地址
  • 福州网站开发cms做服装搭配图的网站
  • 注册网站获取网易邮箱安全码苏州建设工程交易中心网站
  • 做跨境都有哪些网站建站工具 比较
  • 动漫设计工作室网站建设公司免费创建音乐网站
  • 织梦移动端网站模板下载网页制作和网站制作有什么区别
  • 网站建设和购买区别网站建设 移动端 和 PC端
  • 哪个建立网站好263网易企业邮箱入口
  • 大气机械网站网站怎么做更新吗
  • 娄底市网站建设制作wordpress 插件调用文章
  • 58同城济南网站建设什么是网络营销包含哪些内容
  • 合肥设网站注册一个公司大概要多少钱
  • 武陟网站建设注册网站在哪里创建
  • 公司制作网站需要网站建设 接单
  • 网站做可信认证wordpress精美免费主题
  • 网站开发时会遇到哪些问题没网站怎么做二维码扫描连接
  • 网站建设7个主要流程代加工手工活外发免费 来料加工
  • 个人房产信息查询网站无锡手机网站开发
  • seo网站排名优化国产apple