/** * 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; } }