Home  >  Article  >  Backend Development  >  PHP中计算百分比时如何保证各部和为1?

PHP中计算百分比时如何保证各部和为1?

WBOY
WBOYOriginal
2016-06-23 14:10:331386browse

$total = $a+$b+$c+$d;$percentA = ceil($a*100.0/$total);$percentB = ceil($b*100.0/$total);$percentC = ceil($c*100.0/$total);$percentD = ceil($d*100.0/$total);


上面的代码似乎无法确保最后的总和是100%

$percentD = 100-$percentA-$percentB-$percentC;

除了这种方法,有其他方法吗?


回复讨论(解决方案)

不要小数吗?
另外你这没有四舍五入,是需要的吗?
$percentA = round($a*100.0/$total);

不要小数吗?
另外你这没有四舍五入,是需要的吗?
$percentA = round($a*100.0/$total);

是要四舍五入的

$a = array(1,2,3,3);$total = array_sum($a);array_walk($a, function(&$item, $key, $prefix) { $item = round($item*100/$prefix); }, $total);if($d = (100 - array_sum($a))) $a[rand(0, count($a)-1)] += $d;print_r($a);

$a = array(1,2,3,3);$total = array_sum($a);array_walk($a, function(&$item, $key, $prefix) { $item = round($item*100/$prefix); }, $total);if($d = (100 - array_sum($a))) $a[rand(0, count($a)-1)] += $d;print_r($a);


多谢

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn