Php 将浮点数除以x个变量

Php 将浮点数除以x个变量,php,divide,Php,Divide,我想将总额(例如4.45)除以动态变量数(例如4)。变量之和应始终为总额的总和 var1=1.11 var2=1.11 var3=1.11 var4=1.12 如果你除以4,你将得到11125,一轮(1.1125,2),你将得到1.11,4*1.11=4.44。剩余的0,01可以添加到最后的变量数中,因此它将是1.12。1)使用数组而不是单独的变量 2) 对数组进行计数和求和我编写了一个函数,它几乎完全满足您的要求(我返回一个数组)。您可以提供想要返回的VAR的数量和数量。它总是四舍五入到2

我想将总额(例如4.45)除以动态变量数(例如4)。变量之和应始终为总额的总和

  • var1=1.11
  • var2=1.11
  • var3=1.11
  • var4=1.12

如果你除以4,你将得到11125,一轮(1.1125,2),你将得到1.11,4*1.11=4.44。剩余的0,01可以添加到最后的变量数中,因此它将是1.12。

1)使用数组而不是单独的变量
2) 对数组进行计数和求和

我编写了一个函数,它几乎完全满足您的要求(我返回一个数组)。您可以提供想要返回的VAR的数量和数量。它总是四舍五入到2位小数

<?php
function divideAmount($amount, $numberOfVars){

    $values = [];

    $dividedAmount = $amount/$numberOfVars;

    for($i=1; $i<=$numberOfVars; $i++){
        $values[] = round($dividedAmount,2);
    }

    $newAmount = 0;
    foreach($values as $value){
        $newAmount += $value;   
    }

    if($newAmount != $amount){
        $amountLeft = $amount - $newAmount; 
        $values[$numberOfVars-1] += $amountLeft;
    }

    return $values;
}


$values = divideAmount(4.45, 4);

var_dump($values);

您可以使用
数组填充()

$tot   = 4.45;   # sum total
$n     = 4;      # addends number

$values = array_fill( 0, $n-1, round( $tot/$n,2 ) );
$values[ $n-1 ] = round( $tot - array_sum( $values ),2 );

print_r( $values );
echo array_sum($values) . PHP_EOL;
将输出:

Array
(
    [0] => 1.11
    [1] => 1.11
    [2] => 1.11
    [3] => 1.12
)
4.45


首先,用整数除以动态数填充n-1个项目的数组,然后将最后一个项目加起来,减去现有项目的总和。

1。你试了什么?2.它应该被4除,数字能完全相同吗?还是你希望它是4个随机数,总数达到4.55?如果我们将
4.55
除以
4
,我们将有四个
1.1375
那么四个变量中的每一个都是相同的数字。那么,有什么条件不允许这样做吗?如果你除以4,一轮你将得到11125(1.1125,2),你将得到1.11。4*1.11=4.44。剩余的0,01可以添加到最后的变量数中,因此它将是1.12。您应该将其作为一项要求添加到您的问题中。不要让人们在评论中找出你需要什么。帮助我们理解最终将帮助您。另外@ParthapratimNeog是正确的:
4.55/4=1.1375
。所以现在我真的很困惑。谢谢大安!这正是我想要的。