php - 如何从数组中提取百分比
问题描述
如何从数组中提取百分比
结果如下: 41 - 16 - 8 - 33
合计是98,不是100
怎么弄= 100
$sum = array(500.36,200.32,100.09,400);
$total = array_sum($sum);
foreach($sum as $val){
$st = intval($val / $total * 100 );
echo $st.'<br>';
}
解决方案
原因是:精度 :) 使用 intval() 可以跳过小数点。所以 41+16+8+33 真的是 98。
如果用 2 位小数相加:41.66 + 16.68 + 8.33 + 33.31 = 99.98
如果您使用 round() 而不是 intval() 您将对值进行四舍五入,以便在统计上更接近。你会得到:42 + 17 + 8 + 33 = 100
但!如果你想确保总和是 100,那么你应该选择一个数字(我建议最大的一个)来计算:100 - 总和(其余的)。
推荐阅读
- c# - 我可以在 ASP.net core 3.0 的 [Route("x/{id}") 中使用变量吗?
- python - 无法从某些相同的网页中一致地获取三个字段
- xamarin - 如何导航到具有 Shell 弹出菜单的新页面?
- javascript - OpenLayers 地图显示数据和交互的问题
- html - 如何在左侧制作带有徽标的单杠
- git - 如何获取所选分支历史记录中的所有标签,但只获取那些标签?
- javascript - 在javascript中将一种输入类型转换为另一种输入动作
- java - 使用 agg() 方法的 Spark 数据集计数行匹配条件(Java 中)
- angular - 如何使用离子将图像从相机存储到服务器
- azure-functions - 我无法从 python(Azure 函数)发送电子邮件(smtp.office365.com/587)