/**
* PARAM_FLOAT - a real/floating point number.
+ *
+ * Note that you should not use PARAM_FLOAT for numbers typed in by the user.
+ * It does not work for languages that use , as a decimal separator.
+ * Instead, do something like
+ * $rawvalue = required_param('name', PARAM_RAW);
+ * // ... other code including require_login, which sets current lang ...
+ * $realvalue = unformat_float($rawvalue);
+ * // ... then use $realvalue
*/
define('PARAM_FLOAT', 'float');
if (preg_match('!^g([0-9]+)$!', $key, $matches)) {
// Parse input for question -> grades.
$questionid = $matches[1];
- $quiz->grades[$questionid] = clean_param($value, PARAM_FLOAT);
+ $quiz->grades[$questionid] = unformat_float($value);
quiz_update_question_instance($quiz->grades[$questionid], $questionid, $quiz);
$deletepreviews = true;
$recomputesummarks = true;
}
// If rescaling is required save the new maximum.
- $maxgrade = optional_param('maxgrade', -1, PARAM_FLOAT);
+ $maxgrade = unformat_float(optional_param('maxgrade', -1, PARAM_RAW));
if ($maxgrade >= 0) {
quiz_set_grade($maxgrade, $quiz);
}