diff --git a/django/db/backends/utils.py b/django/db/backends/utils.py index e7b9c30193..2c404b3a0b 100644 --- a/django/db/backends/utils.py +++ b/django/db/backends/utils.py @@ -225,18 +225,14 @@ def format_number(value, max_digits, decimal_places): """ if value is None: return None - if isinstance(value, decimal.Decimal): - context = decimal.getcontext().copy() - if max_digits is not None: - context.prec = max_digits - if decimal_places is not None: - value = value.quantize(decimal.Decimal(1).scaleb(-decimal_places), context=context) - else: - context.traps[decimal.Rounded] = 1 - value = context.create_decimal(value) - return "{:f}".format(value) + context = decimal.getcontext().copy() + if max_digits is not None: + context.prec = max_digits if decimal_places is not None: - return "%.*f" % (decimal_places, value) + value = value.quantize(decimal.Decimal(1).scaleb(-decimal_places), context=context) + else: + context.traps[decimal.Rounded] = 1 + value = context.create_decimal(value) return "{:f}".format(value)