From 12f7928f5a455e330c0a7f19bc86b37baca12811 Mon Sep 17 00:00:00 2001 From: Mariusz Felisiak Date: Tue, 15 Nov 2016 15:07:15 +0100 Subject: Fixed #27394 -- Added scientific notation support for big integers in floatformat filter. --- django/template/defaultfilters.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'django/template') diff --git a/django/template/defaultfilters.py b/django/template/defaultfilters.py index b258cf269b..a1f96f5e2e 100644 --- a/django/template/defaultfilters.py +++ b/django/template/defaultfilters.py @@ -134,7 +134,7 @@ def floatformat(text, arg=-1): """ try: - input_val = force_text(text) + input_val = repr(text) d = Decimal(input_val) except UnicodeEncodeError: return '' @@ -165,7 +165,8 @@ def floatformat(text, arg=-1): try: # Set the precision high enough to avoid an exception, see #15789. tupl = d.as_tuple() - units = len(tupl[1]) - tupl[2] + units = len(tupl[1]) + units += -tupl[2] if m else tupl[2] prec = abs(p) + units + 1 # Avoid conversion to scientific notation by accessing `sign`, `digits` -- cgit v1.3