@classmethod
def round_if_needed(cls, o):
    """
        If the value `o` is determined to be a float, it is rounded with the precision
        contained in the class's internal state. Otherwise, the value itself is returned.

        This method relies on the assumption that if `time_ndigits` is 0,
        then the parameter `o` must be an ``int``.

        The main use-case for floating-point rounding is due to
        floating-point arithmetic and its limitations (such as representation issues).        Reference: https://docs.python.org/3/tutorial/floatingpoint.html

        Returns
        -------
        rounded_number : int or float
            Returns float value if `time_ndigits` is non-zero, otherwise an int value.

        """
    return cls._time_func(o, cls._time_ndigits) if cls._time_ndigits else o
