original_string: public function bounded_grade($gradevalue) {
          global $CFG;
  
          if (is_null($gradevalue)) {
              return null;
          }
  
          if ($this->gradetype == GRADE_TYPE_SCALE) {
              // no >100% grades hack for scale grades!
              // 1.5 is rounded to 2 ;-)
              return (int)bounded_number($this->grademin, round($gradevalue+0.00001), $this->grademax);
          }
  
          $grademax = $this->grademax;
  
          // NOTE: if you change this value you must manually reset the needsupdate flag in all grade items
          $maxcoef = isset($CFG->gradeoverhundredprocentmax) ? $CFG->gradeoverhundredprocentmax : 10; // 1000% max by default
  
          if (!empty($CFG->unlimitedgrades)) {
              // NOTE: if you change this value you must manually reset the needsupdate flag in all grade items
              $grademax = $grademax * $maxcoef;
          } else if ($this->is_category_item() or $this->is_course_item()) {
              $category = $this->load_item_category();
              if ($category->aggregation >= 100) {
                  // grade >100% hack
                  $grademax = $grademax * $maxcoef;
              }
          }
  
          return (float)bounded_number($this->grademin, $gradevalue, $grademax);
      }
code: public function bounded_grade($gradevalue) {
          global $CFG;
  
          if (is_null($gradevalue)) {
              return null;
          }
  
          if ($this->gradetype == GRADE_TYPE_SCALE) {
              // no >100% grades hack for scale grades!
              // 1.5 is rounded to 2 ;-)
              return (int)bounded_number($this->grademin, round($gradevalue+0.00001), $this->grademax);
          }
  
          $grademax = $this->grademax;
  
          // NOTE: if you change this value you must manually reset the needsupdate flag in all grade items
          $maxcoef = isset($CFG->gradeoverhundredprocentmax) ? $CFG->gradeoverhundredprocentmax : 10; // 1000% max by default
  
          if (!empty($CFG->unlimitedgrades)) {
              // NOTE: if you change this value you must manually reset the needsupdate flag in all grade items
              $grademax = $grademax * $maxcoef;
          } else if ($this->is_category_item() or $this->is_course_item()) {
              $category = $this->load_item_category();
              if ($category->aggregation >= 100) {
                  // grade >100% hack
                  $grademax = $grademax * $maxcoef;
              }
          }
  
          return (float)bounded_number($this->grademin, $gradevalue, $grademax);
      }
code_tokens: public function bounded_grade ( $ gradevalue ) { global $ CFG ; if ( is_null ( $ gradevalue ) ) { return null ; } if ( $ this -> gradetype == GRADE_TYPE_SCALE ) { // no >100% grades hack for scale grades! // 1.5 is rounded to 2 ;-) return ( int ) bounded_number ( $ this -> grademin , round ( $ gradevalue + 0.00001 ) , $ this -> grademax ) ; } $ grademax = $ this -> grademax ; // NOTE: if you change this value you must manually reset the needsupdate flag in all grade items $ maxcoef = isset ( $ CFG -> gradeoverhundredprocentmax ) ? $ CFG -> gradeoverhundredprocentmax : 10 ; // 1000% max by default if ( ! empty ( $ CFG -> unlimitedgrades ) ) { // NOTE: if you change this value you must manually reset the needsupdate flag in all grade items $ grademax = $ grademax * $ maxcoef ; } else if ( $ this -> is_category_item ( ) or $ this -> is_course_item ( ) ) { $ category = $ this -> load_item_category ( ) ; if ( $ category -> aggregation >= 100 ) { // grade >100% hack $ grademax = $ grademax * $ maxcoef ; } } return ( float ) bounded_number ( $ this -> grademin , $ gradevalue , $ grademax ) ; }
docstring: Makes sure value is a valid grade value.
  
  @param float $gradevalue
  @return mixed float or int fixed grade value
docstring_tokens: Makes sure value is a valid grade value .