diff options
| author | Aymeric Augustin <aymeric.augustin@m4x.org> | 2011-12-24 11:01:57 +0000 |
|---|---|---|
| committer | Aymeric Augustin <aymeric.augustin@m4x.org> | 2011-12-24 11:01:57 +0000 |
| commit | ddb2a9eb9e3f3f14212eb85325fb2f30aba1fb1f (patch) | |
| tree | 9aae001c66aeb115b0987a15f7e8bdd5cdc10d32 /django/utils/numberformat.py | |
| parent | 1c169071998702880b4fa534c06b35c20f184eef (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/numberformat.py')
| -rw-r--r-- | django/utils/numberformat.py | 16 |
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 = '' |
