pub(crate) fn approximate_float_unsigned<T, F>( val: F, max_error: F, max_iterations: usize, ) -> Option<Ratio<T>>where T: Integer + Bounded + NumCast + Clone, F: FloatCore + NumCast,