Php除以没有小数单独的结果

时间:2017-12-15 12:26:50

标签: php

我想做的是:

   $numbertodivise = 500;

   500 / 3 = 166,66

我想将最公平的部分中的数字和最后部分中的数字加以区分,例如:

  500 / 3 will give me :
  $result1 = 166
  $result2 = 166
  $result3 = 168

我想要每个部门的代码如何才能做到这一点?

4 个答案:

答案 0 :(得分:0)

我在这里提取了numbertodivise的剩余部分,例如2如果模数为3,后来我划分并提取了除法的整数部分,这样我就可以将余数加到最后一个除数中,即在这种情况下为166。

<?php
$numbertodivise = 500;
$no = 3;

$intnumber = intval($numbertodivise / $no);
$rem = $numbertodivise % $no;
$array = [];

for($i=1;$i<=$no;$i++) {
    if($i==$no) {
        $array[] = $intnumber + $rem;
    } else {
        $array[] = $intnumber;
    }
}

echo "<pre>";
print_r($array);
?>

输出将如下所示:

Array
(
    [0] => 166
    [1] => 166
    [2] => 168
)

如上所述,为了制作变量,请使用:

<?php list($result1, $result2, $result3) = $array; ?>

答案 1 :(得分:0)

对于PHP 7,您可以使用此功能(检查&lt; 7的评论):

print_r(get_results(500, 3));

像这样使用:

Array
(
    [0] => 166
    [1] => 166
    [2] => 168
)

输出将是:

<td style="border: 1px solid #ddd;background-color:#E5E4E2;">
     <input type="text" name="qty_enter[]"  id="qty_enter0" onkeyup="sum(0),itc_details(0),prevent_zero(0),advance_seeting1();" onkeypress="copyValue2(1)" onkeydown="return isNumberKey(event)" style="width: 65px;outline: none;border: none; background: transparent;"/>
</td>

答案 2 :(得分:0)

这是使用intval()和模运算符%执行此操作的方法:

<?php
    $divide = 500;
    $divideWith = 3;

    for($i=0; $i < $divideWith; $i++)
    {
        echo "This is result".($i+1).": ";

        // If $i is not on the last iteration
        if($i != $divideWith-1)
            // intval() returns integer part without rounding. It
            // floors the value inside the parenthesese.
            echo intval($divide/$divideWith).'<br/>';
        else
            // ($divide % $divideWidth) will return the remainder of
            // division between $divide and $divideWidth. 
            // The remainder is always an int value.
            echo (int($divide/$divideWith) + ($divide % $divideWith)).'<br/>';
    }
?>

结果将是:

This is result1: 166
This is result2: 166
This is result3: 168

答案 3 :(得分:0)

不循环并使用基本PHP函数的方法。

我使用array_fill用计算的底限填充数组 然后我将余数添加到数组中的最后一项。

$number = 500;
$divise =3;

$arr = array_fill(0, $divise, floor($number/$divise));
$arr[count($arr)-1] += $number-(floor($number/$divise)*$divise);
// Above line can also be . $arr[count($arr)-1] += $number-$arr[0]*$divise;
Var_dump($arr);

https://3v4l.org/hFrDc