PHP除以零,但返回1.33

时间:2016-07-15 14:41:49

标签: php arrays yii2 divide-by-zero dividebyzeroexception

在我比较调查问卷的页面上,我计算了两者的平均值。但是,无论我输入什么数字,某一行代码总是以零除。代码:

<?php foreach($questions as $question) : ?>
    <?= Html::tag('h4', $question->question) ?>
    <?php
    //FIRST SET OF QUESTIONNAIRES
    $answers1 = $questionnaires1->andWhere(['id_question' => $question->id]);
    $all1 = [];
    foreach($answers1->orderBy(['answer' => SORT_ASC])->all() as $answer1){
        $all1[] = $answer1->answer;
    }
    $array1 = [
        Yii::t('app', 'Number of answers') => $answers1->count(),
        Yii::t('app', 'Average answer') => round(array_sum($all1)/count($all1), 2),
        Yii::t('app', 'Median') => calculate_median($all1),
        Yii::t('app', 'Standard deviation') => round(sd($all1), 2)
    ];

首先,我将每个答案存储在一个数组中,然后按升序排序。然后我通过添加数组中的每个值来计算平均值,并将其除以数组中的记录数。我还将结果舍入为2位小数。

出于某种原因,round(array_sum($all1)/count($all1), 2)总是会导致零度偏差。我在执行计算之前检查了两个值,即4/3。它显然应该导致1.3333333。

最后,当我尝试echo var_dump(round(array_sum($all1)/count($all1), 2))时,它按预期返回浮点数(1.33)...也许我在这里忽略了一些非常简单的东西,但我没有看到它。

0 个答案:

没有答案