address issue 24: floating point spelling

This commit is contained in:
isnani
2015-12-18 05:36:01 +01:00
parent 848f9d26b1
commit 073925b1d4
2 changed files with 10 additions and 4 deletions

View File

@@ -116,16 +116,15 @@ class Num2Word_Base(object):
pre = int(value) pre = int(value)
post = abs(value - pre) post = abs(value - pre)
post *= 10**self.precision
out = [self.to_cardinal(pre)] out = [self.to_cardinal(pre)]
if self.precision: if self.precision:
out.append(self.title(self.pointword)) out.append(self.title(self.pointword))
for i in range(self.precision): for i in range(self.precision):
post *= 10 curr = str(post)[i]
curr = int(post) out.append(str(self.to_cardinal(int(curr))))
out.append(str(self.to_cardinal(curr)))
post -= curr
return " ".join(out) return " ".join(out)

View File

@@ -21,3 +21,10 @@ class Num2WordsENTest(TestCase):
def test_and_join_199(self): def test_and_join_199(self):
# ref https://github.com/savoirfairelinux/num2words/issues/8 # ref https://github.com/savoirfairelinux/num2words/issues/8
self.assertEqual(num2words(199), "one hundred and ninety-nine") self.assertEqual(num2words(199), "one hundred and ninety-nine")
def test_cardinal_for_float_number(self):
# issue 24
self.assertEqual(num2words(12.50), "twelve point five zero")
self.assertEqual(num2words(12.51), "twelve point five one")
self.assertEqual(num2words(12.53), "twelve point five three")
self.assertEqual(num2words(12.59), "twelve point five nine")