diff --git a/num2words/__init__.py b/num2words/__init__.py index aaf40df..a2c18b6 100644 --- a/num2words/__init__.py +++ b/num2words/__init__.py @@ -96,6 +96,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 3b990e3..c73f741 100644 --- a/num2words/base.py +++ b/num2words/base.py @@ -96,6 +96,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 3e1d3ab..638331a 100644 --- a/tests/test_cli.py +++ b/tests/test_cli.py @@ -72,7 +72,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): @@ -82,7 +82,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):