Esempio n. 1
0
 /**
  * Converts a decimal to a fraction that can be returned as a ratio
  *
  * @param decimal i.e. 1.75
  */
 public static function convert_decimalto_ratio($decimal)
 {
     $decimal = strval($decimal);
     $decimal_array = explode('.', $decimal);
     // if a whole number
     if (count($decimal_array) !== 2) {
         return $decimal . ':1';
     } else {
         $left_decimal_part = $decimal_array[0];
         // 1
         $right_decimal_part = $decimal_array[1];
         // 75
         $numerator = $left_decimal_part . $right_decimal_part;
         // 175
         $denominator = pow(10, strlen($right_decimal_part));
         // 100
         $factor = HA_Common::highest_common_factor($numerator, $denominator);
         // 25
         $denominator /= $factor;
         $numerator /= $factor;
         return $numerator . ':' . $denominator;
     }
 }