fn round2<T>(num: T, den: T) -> Twhere T: Div<Output = T> + Rem<Output = T> + PartialOrd + Zero + Signed + BitAnd<Output = T> + AddAssign + SubAssign + Clone,