diff --git a/mod/quiz/questiontypes/numerical/questiontype.php b/mod/quiz/questiontypes/numerical/questiontype.php index 5afbd93d7030b..b6e519da1c23f 100644 --- a/mod/quiz/questiontypes/numerical/questiontype.php +++ b/mod/quiz/questiontypes/numerical/questiontype.php @@ -163,7 +163,7 @@ function grade_response($question, $nameprefix, $addedanswercondition='') { unset($responsenum); // Answer is not numeric } } else if (ereg( - '^(([0-9]+(\\.[0-9]*)?|[.][0-9]+)([eE][-+]?[0-9]+)?)([^0-9].*)?$', + '^([+-]?([0-9]+(\\.[0-9]*)?|[.][0-9]+)([eE][-+]?[0-9]+)?)([^0-9].*)?$', $responsenum, $responseparts)) { $responsenum = (float)$responseparts[1]; if ($responseparts[5]) {