def round(self, n=None): n = n or self._currency.decimals decimals = Decimal(10) ** -n return self.__class__(self._amount.quantize(decimals, rounding=ROUND_HALF_UP), self._currency)