Fixed #13810 -- Truncate numbers correctly when given number of decimal positions is zero. Thanks, milosu and Łukasz Rekucki.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@16074 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
parent
0e9692bc66
commit
01d0bf011e
|
@ -2,7 +2,7 @@ from django.conf import settings
|
|||
from django.utils.safestring import mark_safe
|
||||
|
||||
|
||||
def format(number, decimal_sep, decimal_pos, grouping=0, thousand_sep=''):
|
||||
def format(number, decimal_sep, decimal_pos=None, grouping=0, thousand_sep=''):
|
||||
"""
|
||||
Gets a number (as a number or string), and returns it as a string,
|
||||
using formats definied as arguments:
|
||||
|
@ -29,11 +29,11 @@ def format(number, decimal_sep, decimal_pos, grouping=0, thousand_sep=''):
|
|||
# decimal part
|
||||
if '.' in str_number:
|
||||
int_part, dec_part = str_number.split('.')
|
||||
if decimal_pos:
|
||||
if decimal_pos is not None:
|
||||
dec_part = dec_part[:decimal_pos]
|
||||
else:
|
||||
int_part, dec_part = str_number, ''
|
||||
if decimal_pos:
|
||||
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
|
||||
# grouping
|
||||
|
|
|
@ -171,6 +171,7 @@ class FormattingTests(TestCase):
|
|||
settings.USE_THOUSAND_SEPARATOR = False
|
||||
self.assertEqual(u'66666.66', nformat(self.n, decimal_sep='.', decimal_pos=2, grouping=3, thousand_sep=','))
|
||||
self.assertEqual(u'66666A6', nformat(self.n, decimal_sep='A', decimal_pos=1, grouping=1, thousand_sep='B'))
|
||||
self.assertEqual(u'66666', nformat(self.n, decimal_sep='X', decimal_pos=0, grouping=1, thousand_sep='Y'))
|
||||
|
||||
settings.USE_THOUSAND_SEPARATOR = True
|
||||
self.assertEqual(u'66,666.66', nformat(self.n, decimal_sep='.', decimal_pos=2, grouping=3, thousand_sep=','))
|
||||
|
|
Loading…
Reference in New Issue