Для оценки U или F заработанные кредиты должны быть 0, но это не то, что вывод.
Когда вы генерируете вывод, вы печатаете содержимое $row[5]
, прежде чем даже смотреть на то, что оценка была.Чтобы правильно отобразить его как 0, вам нужно сначала проверить оценку, а затем вывести либо 0
(если оценка была "F" или "U"), либо $row[5]
(если оценка была чем-то еще).
В реальном коде я бы рекомендовал использовать систему шаблонов (например, Template :: Toolkit ) вместо прямой печати HTML, что поможет избежать ошибок такого рода, но явижу, что это похоже на домашнее задание, и я сомневаюсь, что использование альтернативных методов, подобных этому, будет в пределах границ задания.
Также есть ли способ вывести GPA с точностью до трех знаков после запятой?
Использование printf
или sprintf
:
$gpa = sprintf('%0.3f', $gpa / $attemptedCredits);