| 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 | 
             |  |  |  | 
            | n |     def __call__(self, f): | n |     def __call__(self, func): | 
             |  |  |  | 
            | n |         @wraps(f) | n |         @wraps(func) | 
             |         def decorator(*args, **kwargs): |  |         def wrapper(*args, **kwargs): | 
             |             rounded_a = tuple((round(arg, self.n) if isinstance(arg, flo |  |             args = tuple((round(a, self.n) if isinstance(a, float) else  | 
             | at) else arg for arg in args)) |  | a for a in args)) | 
             |             rounded_kw = {key: round(value, self.n) if isinstance(value, |  |             kwargs = {k: round(v, self.n) if isinstance(v, float) else v | 
             |  float) else value for key, value in kwargs.items()} |  |  for k, v in kwargs.items()} | 
             |             result = f(*rounded_a, **rounded_kw) |  |             result = func(*args, **kwargs) | 
             |             if isinstance(result, float): |  |             if isinstance(result, float): | 
             |                 return round(result, self.n) |  |                 return round(result, self.n) | 
             |             return result |  |             return result | 
            | t |         return decorator | t |         return wrapper |