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
This commit is contained in:
Adrian Holovaty 2005-10-25 01:44:14 +00:00
parent d4abd6fb52
commit e0d2793b7b
2 changed files with 27 additions and 7 deletions

View File

@ -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 File

@ -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()