summaryrefslogtreecommitdiff
path: root/django/utils
diff options
context:
space:
mode:
authorAymeric Augustin <aymeric.augustin@m4x.org>2011-12-24 11:01:57 +0000
committerAymeric Augustin <aymeric.augustin@m4x.org>2011-12-24 11:01:57 +0000
commitddb2a9eb9e3f3f14212eb85325fb2f30aba1fb1f (patch)
tree9aae001c66aeb115b0987a15f7e8bdd5cdc10d32 /django/utils
parent1c169071998702880b4fa534c06b35c20f184eef (diff)
Fixed #17414 -- Prevented numberformat from trying to group digits when the number of digits per group is zero.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@17267 bcc190cf-cafb-0310-a4f2-bffc1f526a37
Diffstat (limited to 'django/utils')
-rw-r--r--django/utils/numberformat.py16
1 files changed, 9 insertions, 7 deletions
diff --git a/django/utils/numberformat.py b/django/utils/numberformat.py
index c6528c0167..924d06511b 100644
--- a/django/utils/numberformat.py
+++ b/django/utils/numberformat.py
@@ -2,20 +2,21 @@ from django.conf import settings
from django.utils.safestring import mark_safe
-def format(number, decimal_sep, decimal_pos=None, grouping=0, thousand_sep='', force_grouping=False):
+def format(number, decimal_sep, decimal_pos=None, grouping=0, thousand_sep='',
+ force_grouping=False):
"""
Gets a number (as a number or string), and returns it as a string,
- using formats definied as arguments:
+ using formats defined as arguments:
* decimal_sep: Decimal separator symbol (for example ".")
* decimal_pos: Number of decimal positions
* grouping: Number of digits in every group limited by thousand separator
* thousand_sep: Thousand separator symbol (for example ",")
-
"""
- use_grouping = force_grouping or settings.USE_L10N and \
- settings.USE_THOUSAND_SEPARATOR and grouping
- # Make the common case fast:
+ use_grouping = settings.USE_L10N and settings.USE_THOUSAND_SEPARATOR
+ use_grouping = use_grouping or force_grouping
+ use_grouping = use_grouping and grouping > 0
+ # Make the common case fast
if isinstance(number, int) and not use_grouping and not decimal_pos:
return mark_safe(unicode(number))
# sign
@@ -35,7 +36,8 @@ def format(number, decimal_sep, decimal_pos=None, grouping=0, thousand_sep='', f
int_part, dec_part = str_number, ''
if decimal_pos is not None:
dec_part = dec_part + ('0' * (decimal_pos - len(dec_part)))
- if dec_part: dec_part = decimal_sep + dec_part
+ if dec_part:
+ dec_part = decimal_sep + dec_part
# grouping
if use_grouping:
int_part_gd = ''