summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHe Chen <hchen584@bloomberg.net>2019-08-19 16:06:41 -0400
committerAarni Koskela <akx@iki.fi>2019-12-31 11:47:59 +0200
commitdf9c01c6480ef20523418079b6774612e47b8c63 (patch)
tree57196c42a480ffd964e4e6c67d5a6a9c01d2eb8d
parent30355cadf58fc26fe87064a04901a321225df273 (diff)
downloadbabel-df9c01c6480ef20523418079b6774612e47b8c63.tar.gz
fix small decimal with disabled decimal_quantization
-rw-r--r--babel/numbers.py2
-rw-r--r--tests/test_numbers.py4
2 files changed, 5 insertions, 1 deletions
diff --git a/babel/numbers.py b/babel/numbers.py
index 6888c9c..cf819fc 100644
--- a/babel/numbers.py
+++ b/babel/numbers.py
@@ -1063,7 +1063,7 @@ class NumberPattern(object):
def _quantize_value(self, value, locale, frac_prec):
quantum = get_decimal_quantum(frac_prec[1])
rounded = value.quantize(quantum)
- a, sep, b = str(rounded).partition(".")
+ a, sep, b = "{:f}".format(rounded).partition(".")
number = (self._format_int(a, self.int_prec[0],
self.int_prec[1], locale) +
self._format_frac(b or '0', locale, frac_prec))
diff --git a/tests/test_numbers.py b/tests/test_numbers.py
index 6e26fe9..a980a66 100644
--- a/tests/test_numbers.py
+++ b/tests/test_numbers.py
@@ -690,3 +690,7 @@ def test_parse_decimal_nbsp_heuristics():
n = decimal.Decimal("12345.123")
assert numbers.parse_decimal("12 345.123", locale="fi") == n
assert numbers.parse_decimal(numbers.format_decimal(n, locale="fi"), locale="fi") == n
+
+
+def test_very_small_decimal_no_quantization():
+ assert numbers.format_decimal(decimal.Decimal('1E-7'), locale='en', decimal_quantization=False) == '0.0000001'