Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

Fixed #687 -- Fixed bug in floatformat template filter and added unit…

… tests. Thanks, Sune

git-svn-id: http://code.djangoproject.com/svn/django/trunk@1007 bcc190cf-cafb-0310-a4f2-bffc1f526a37
  • Loading branch information...
commit e0d2793b7b6363196599d67316c1dac8c6c725e7 1 parent d4abd6f
@adrianholovaty adrianholovaty authored
View
14 django/core/template/defaultfilters.py
@@ -24,15 +24,15 @@ def fix_ampersands(value, _):
def floatformat(text, _):
"""
- Displays a floating point number as 34.2 (with one decimal place) - but
+ Displays a floating point number as 34.2 (with one decimal place) -- but
only if there's a point to be displayed
"""
- from math import modf
- if not text:
- return ''
- if modf(float(text))[0] < 0.1:
- return text
- return "%.1f" % float(text)
+ f = float(text)
+ m = f - int(f)
+ if m:
+ return '%.1f' % f
+ else:
+ return '%d' % int(f)
def linenumbers(value, _):
"Displays text with line numbers"
View
20 tests/othertests/defaultfilters.py
@@ -0,0 +1,20 @@
+"""
+>>> floatformat(7.7, None)
+'7.7'
+>>> floatformat(7.0, None)
+'7'
+>>> floatformat(0.7, None)
+'0.7'
+>>> floatformat(0.07, None)
+'0.1'
+>>> floatformat(0.007, None)
+'0.0'
+>>> floatformat(0.0, None)
+'0'
+"""
+
+from django.core.template.defaultfilters import *
+
+if __name__ == '__main__':
+ import doctest
+ doctest.testmod()
Please sign in to comment.
Something went wrong with that request. Please try again.