0

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

<?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)
    ];

首先,我将每个单独的答案存储在一个数组中,并按升序排列。然后,我通过将数组中的每个值相加来计算平均值,除以数组中的记录数。我还将结果四舍五入到小数点后两位。

出于某种原因,round(array_sum($all1)/count($all1), 2)总是导致除数为零。在计算 4/3 之前,我检查了这两个值。它显然应该导致 1.3333333。

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

4

0 回答 0