diff --git a/django/db/backends/utils.py b/django/db/backends/utils.py index f4641e3db8..a574d64562 100644 --- a/django/db/backends/utils.py +++ b/django/db/backends/utils.py @@ -236,7 +236,7 @@ def format_number(value, max_digits, decimal_places): if max_digits is not None: context.prec = max_digits if decimal_places is not None: - value = value.quantize(decimal.Decimal(".1") ** decimal_places, context=context) + value = value.quantize(decimal.Decimal(1).scaleb(-decimal_places), context=context) else: context.traps[decimal.Rounded] = 1 value = context.create_decimal(value) diff --git a/django/forms/fields.py b/django/forms/fields.py index 92a8f768c4..61f5ccfe58 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -360,7 +360,7 @@ class DecimalField(IntegerField): if self.decimal_places is not None: # Use exponential notation for small values since they might # be parsed as 0 otherwise. ref #20765 - step = str(Decimal('1') / 10 ** self.decimal_places).lower() + step = str(Decimal(1).scaleb(-self.decimal_places)).lower() else: step = 'any' attrs.setdefault('step', step)