diff --git a/num2words/__init__.py b/num2words/__init__.py index ac84888..6df724c 100644 --- a/num2words/__init__.py +++ b/num2words/__init__.py @@ -101,6 +101,8 @@ def num2words(number, ordinal=False, lang='en', to='cardinal', **kwargs): if lang not in CONVERTER_CLASSES: raise NotImplementedError() converter = CONVERTER_CLASSES[lang] + if isinstance(number, str): + number = converter.str_to_number(number) # backwards compatible if ordinal: return converter.to_ordinal(number) diff --git a/num2words/base.py b/num2words/base.py index 4397381..de28116 100644 --- a/num2words/base.py +++ b/num2words/base.py @@ -97,6 +97,9 @@ class Num2Word_Base(object): return '%s ' % self.negword, num_str[1:] return '', num_str + def str_to_number(self, value): + return Decimal(value) + def to_cardinal(self, value): try: assert int(value) == value diff --git a/tests/test_cli.py b/tests/test_cli.py index 484a8dc..00fc50c 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -87,7 +87,7 @@ class CliTestCase(unittest.TestCase): self.assertEqual(output.return_code, 0) self.assertEqual( output.out.strip(), - "one hundred and fifty point zero" + "one hundred and fifty" ) def test_cli_with_lang(self): @@ -97,7 +97,7 @@ class CliTestCase(unittest.TestCase): self.assertEqual(output.return_code, 0) self.assertEqual( output.out.strip(), - "ciento cincuenta punto cero" + "ciento cincuenta" ) def test_cli_with_lang_to(self):