]> git.mjollnir.org Git - moodle.git/commitdiff
MDL-3282 , MDL-4595 error in numerical with comma . More number formats are allowed
authorPierre Pichet <pichet.pierre@uqam.ca>
Thu, 17 Dec 2009 21:45:10 +0000 (21:45 +0000)
committerPierre Pichet <pichet.pierre@uqam.ca>
Thu, 17 Dec 2009 21:45:10 +0000 (21:45 +0000)
question/type/numerical/questiontype.php

index 63cbc5bef7b4279a212bba67f09ba28b4ef3cb60..9978c76aa1698a1a1b2e7fd5fc130bdf954127cb 100644 (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].*)?$~',