PHP比例除法


PHP proportional division

我正在尝试编写一些PHP,它将对一个数字进行除法,如果奇数,则最后一个结果将被四舍五入。因此允许奇数成比例。

例如:

5/3等于1.666重复出现。该代码将生成一个1.67、1.67和1.66的数组。

6/2等于2。该代码将生成一个由2、2、2组成的数组。

我设法想出了这个:

$total = 7;
$divide = 3;
$array = array_fill(0, $total, round($total/$divide, 2));
if($total%$divide == 1) $array[count($array)-1] = $array[count($array)-1]-0.01;

我想知道是否有更合乎逻辑的方法?

感谢

我认为您的数组应该有$divide数量的元素。

所以6/2就是3和3。我更改了与余数相关的if语句。我只是到了最后一个元素。

function calculate($total, $divide) {
    $array = array_fill(0, $divide, round($total/$divide, 2));
    if($total%$divide > 0) {
        $array[count($array)-1] += $total - array_sum($array);
    }
    return $array;
}
$result = calculate(5, 3);
print_r($result);

您是否试图获得一组加起来为$total的数字?如果是这样的话,我认为你的基本算法是不对的。考虑7/3。小数点后两位为2.33。您的代码将生成一个由2.33、2.33和2.32组成的数组,它们的总和为6.98,而不是7。