Ticket #3004: floatformat.2.diff
File floatformat.2.diff, 1.8 KB (added by , 18 years ago) |
---|
-
django/template/defaultfilters.py
27 27 from django.utils.html import fix_ampersands 28 28 return fix_ampersands(value) 29 29 30 def floatformat(text ):30 def floatformat(text, precision=1): 31 31 """ 32 Displays a floating point number as 34.2 (with one decimal place) -- but33 only if there's a point to be displayed32 Rounds a floating point number to the number of decimal places given in the 33 argument, with trailing zeroes and periods stripped. 34 34 """ 35 35 try: 36 36 f = float(text) 37 37 except ValueError: 38 38 return '' 39 m = f - int(f) 40 if m: 41 return '%.1f' % f 42 else: 43 return '%d' % int(f) 39 return re.sub(r'\.?0+$', '', str(round(f, precision))) 44 40 45 41 def linenumbers(value): 46 42 "Displays text with line numbers" -
docs/templates.txt
924 924 floatformat 925 925 ~~~~~~~~~~~ 926 926 927 Rounds a floating-point number to one decimal place -- but only if there's a928 decimal part to be displayed. For example: 927 Rounds a floating-point number to the number of decimal places given in the 928 argument (the dafault is 1), with trailing zeroes and periods stripped. 929 929 930 * ``36.123`` gets converted to ``36.1`` 931 * ``36.15`` gets converted to ``36.2`` 932 * ``36`` gets converted to ``36`` 930 Example: 933 931 932 * ``{{ "36.12345"|floatformat:2 }}`` displays ``36.12`` 933 * ``{{ "36.123"|floatformat }}`` displays ``36.1`` 934 * ``{{ "36.15"|floatformat }}`` displays ``36.2`` 935 * ``{{ "36"|floatformat }}`` displays ``36`` 936 934 937 get_digit 935 938 ~~~~~~~~~ 936 939