Loading django/utils/numberformat.py +6 −1 Original line number Diff line number Diff line from decimal import Decimal from django.conf import settings from django.utils.safestring import mark_safe from django.utils import six Loading @@ -22,6 +24,9 @@ def format(number, decimal_sep, decimal_pos=None, grouping=0, thousand_sep='', return mark_safe(six.text_type(number)) # sign sign = '' if isinstance(number, Decimal): str_number = '{:f}'.format(number) else: str_number = six.text_type(number) if str_number[0] == '-': sign = '-' Loading tests/utils_tests/test_numberformat.py +12 −1 Original line number Diff line number Diff line from decimal import Decimal from sys import float_info from unittest import TestCase from django.utils.numberformat import format as nformat from sys import float_info class TestNumberFormat(TestCase): Loading Loading @@ -45,3 +47,12 @@ class TestNumberFormat(TestCase): self.assertEqual(nformat(0 - int_max, '.'), most_max.format('-', '8')) self.assertEqual(nformat(-1 - int_max, '.'), most_max.format('-', '9')) self.assertEqual(nformat(-2 * int_max, '.'), most_max2.format('-')) def test_decimal_numbers(self): self.assertEqual(nformat(Decimal('1234'), '.'), '1234') self.assertEqual(nformat(Decimal('1234.2'), '.'), '1234.2') self.assertEqual(nformat(Decimal('1234'), '.', decimal_pos=2), '1234.00') self.assertEqual(nformat(Decimal('1234'), '.', grouping=2, thousand_sep=','), '1234') self.assertEqual(nformat(Decimal('1234'), '.', grouping=2, thousand_sep=',', force_grouping=True), '12,34') self.assertEqual(nformat(Decimal('-1234.33'), '.', decimal_pos=1), '-1234.3') self.assertEqual(nformat(Decimal('0.00000001'), '.', decimal_pos=8), '0.00000001') Loading
django/utils/numberformat.py +6 −1 Original line number Diff line number Diff line from decimal import Decimal from django.conf import settings from django.utils.safestring import mark_safe from django.utils import six Loading @@ -22,6 +24,9 @@ def format(number, decimal_sep, decimal_pos=None, grouping=0, thousand_sep='', return mark_safe(six.text_type(number)) # sign sign = '' if isinstance(number, Decimal): str_number = '{:f}'.format(number) else: str_number = six.text_type(number) if str_number[0] == '-': sign = '-' Loading
tests/utils_tests/test_numberformat.py +12 −1 Original line number Diff line number Diff line from decimal import Decimal from sys import float_info from unittest import TestCase from django.utils.numberformat import format as nformat from sys import float_info class TestNumberFormat(TestCase): Loading Loading @@ -45,3 +47,12 @@ class TestNumberFormat(TestCase): self.assertEqual(nformat(0 - int_max, '.'), most_max.format('-', '8')) self.assertEqual(nformat(-1 - int_max, '.'), most_max.format('-', '9')) self.assertEqual(nformat(-2 * int_max, '.'), most_max2.format('-')) def test_decimal_numbers(self): self.assertEqual(nformat(Decimal('1234'), '.'), '1234') self.assertEqual(nformat(Decimal('1234.2'), '.'), '1234.2') self.assertEqual(nformat(Decimal('1234'), '.', decimal_pos=2), '1234.00') self.assertEqual(nformat(Decimal('1234'), '.', grouping=2, thousand_sep=','), '1234') self.assertEqual(nformat(Decimal('1234'), '.', grouping=2, thousand_sep=',', force_grouping=True), '12,34') self.assertEqual(nformat(Decimal('-1234.33'), '.', decimal_pos=1), '-1234.3') self.assertEqual(nformat(Decimal('0.00000001'), '.', decimal_pos=8), '0.00000001')