| f | from functools import wraps | f | from functools import wraps | 
             |  |  |  | 
             | class Fix: |  | class Fix: | 
             |  |  |  | 
             |     def __init__(self, n): |  |     def __init__(self, n): | 
             |         self.n = n |  |         self.n = n | 
             |  |  |  | 
             |     def __call__(self, func): |  |     def __call__(self, func): | 
             |  |  |  | 
             |         @wraps(func) |  |         @wraps(func) | 
             |         def wrapper(*args, **kwargs): |  |         def wrapper(*args, **kwargs): | 
            | n |             converted_args = [] | n |             rounded_args = [] | 
             |             for arg in args: |  |             for arg in args: | 
             |                 if isinstance(arg, float): |  |                 if isinstance(arg, float): | 
            | n |                     converted_args.append(round(arg, self.n)) | n |                     rounded_args.append(round(arg, self.n)) | 
             |                 else: |  |                 else: | 
            | n |                     converted_args.append(arg) | n |                     rounded_args.append(arg) | 
             |             converted_kwargs = {} |  |             rounded_kwargs = {} | 
             |             for k, v in kwargs.items(): |  |             for k, v in kwargs.items(): | 
             |                 if isinstance(v, float): |  |                 if isinstance(v, float): | 
            | n |                     converted_kwargs[k] = round(v, self.n) | n |                     rounded_kwargs[k] = round(v, self.n) | 
             |                 else: |  |                 else: | 
            | t |                     converted_kwargs[k] = v | t |                     rounded_kwargs[k] = v | 
             |             out = func(*converted_args, **converted_kwargs) |  |             result = func(*rounded_args, **rounded_kwargs) | 
             |             if isinstance(out, float): |  |             if isinstance(result, float): | 
             |                 out = round(out, self.n) |  |                 return round(result, self.n) | 
             |  |  |             else: | 
             |             return out |  |                 return result | 
             |         return wrapper |  |         return wrapper |