MDL-3282 , MDL-4595 error in numerical with comma . More number formats are allowed

This commit is contained in:
Pierre Pichet 2009-12-17 21:45:10 +00:00
parent da0c0e2595
commit be1bb80efa

View File

@ -632,9 +632,15 @@ class question_numerical_qtype extends question_shortanswer_qtype {
$tmpunits[$unit->unit] = $unit->multiplier;
}
// remove spaces and normalise decimal places.
$rawresponse = trim($rawresponse) ;
$search = array(' ', ',');
$replace = array('', '.');
$rawresponse = str_replace($search, $replace, trim($rawresponse));
// test if a . is present or there are multiple , (i.e. 2,456,789 ) so that we don't need spaces and ,
if ( strpos($rawresponse,'.' ) !== false || substr_count($rawresponse,',') > 1 ) {
$replace = array('', '');
}else { // remove spaces and normalise , to a . .
$replace = array('', '.');
}
$rawresponse = str_replace($search, $replace, $rawresponse);
// Apply any unit that is present.
if (preg_match('~^([+-]?([0-9]+(\\.[0-9]*)?|\\.[0-9]+)([eE][-+]?[0-9]+)?)([^0-9].*)?$~',