Commit 069ea31c by Michał Hernas

Added test ensuring DecimalField accepts `2E+2` as 200 and validates

decimal place correctly.
parent e33fed70
...@@ -782,7 +782,8 @@ class DecimalField(Field): ...@@ -782,7 +782,8 @@ class DecimalField(Field):
self.fail('invalid') self.fail('invalid')
sign, digittuple, exponent = value.as_tuple() sign, digittuple, exponent = value.as_tuple()
decimals = abs(exponent) decimals = exponent * decimal.Decimal(-1) if exponent < 0 else 0
# digittuple doesn't include any leading zeros. # digittuple doesn't include any leading zeros.
digits = len(digittuple) digits = len(digittuple)
if decimals > digits: if decimals > digits:
......
...@@ -647,6 +647,7 @@ class TestDecimalField(FieldValues): ...@@ -647,6 +647,7 @@ class TestDecimalField(FieldValues):
0: Decimal('0'), 0: Decimal('0'),
12.3: Decimal('12.3'), 12.3: Decimal('12.3'),
0.1: Decimal('0.1'), 0.1: Decimal('0.1'),
'2E+2': Decimal('200'),
} }
invalid_inputs = ( invalid_inputs = (
('abc', ["A valid number is required."]), ('abc', ["A valid number is required."]),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment