]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-11276, average calculations are inaccurate in percentage form due to double rounding
authortoyomoyo <toyomoyo>
Mon, 17 Sep 2007 04:25:51 +0000 (04:25 +0000)
committertoyomoyo <toyomoyo>
Mon, 17 Sep 2007 04:25:51 +0000 (04:25 +0000)
grade/report/grader/lib.php

index 210411b2faf53d857f2bdbf275c9e00cbfa19b8c..0efdaea9b0087b80d1abd122ebd3559e83643305 100644 (file)
@@ -924,17 +924,17 @@ class grade_report_grader extends grade_report {
                         $gradehtml = $scale_object->get_nearest_item($scaleval);
                         $rawvalue = $scaleval;
                     } else {
+                        $rawgradeval = $sum/$mean_count;
                         $gradeval = format_float($sum/$mean_count, $decimalpoints);
                         $gradehtml = $gradeval;
-                        $rawvalue = $gradeval;
                     }
 
                     if ($displaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_PERCENTAGE) {
-                        $gradeval = grade_to_percentage($rawvalue, $item->grademin, $item->grademax);
+                        $gradeval = grade_to_percentage($rawgradeval, $item->grademin, $item->grademax);
                         $gradehtml = format_float($gradeval, $decimalpoints). '%';
                     } elseif ($displaytype == GRADE_REPORT_GRADE_DISPLAY_TYPE_LETTER) {
                         $letters = grade_report::get_grade_letters();
-                        $gradehtml = grade_grade::get_letter($letters, $gradeval, $item->grademin, $item->grademax);
+                        $gradehtml = grade_grade::get_letter($letters, $rawgradeval, $item->grademin, $item->grademax);
                     }
 
                     $numberofgrades = '';