Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion num2words/lang_VI.py
Original file line number Diff line number Diff line change
Expand Up @@ -85,14 +85,19 @@ def vietnam_number(self, val):
return ret

def number_to_text(self, number):
# Negatives must not index to_19 from the end (e.g. -1 -> "mười chín").
minus = u''
if number < 0:
minus = u'âm '
number = abs(number)
number = '%.2f' % number
the_list = str(number).split('.')
start_word = self.vietnam_number(int(the_list[0]))
final_result = start_word
if len(the_list) > 1 and int(the_list[1]) > 0:
end_word = self.vietnam_number(int(the_list[1]))
final_result = final_result + ' phẩy ' + end_word
return final_result
return minus + final_result

def to_cardinal(self, number):
return self.number_to_text(number)
Expand Down
8 changes: 8 additions & 0 deletions tests/test_vi.py
Original file line number Diff line number Diff line change
Expand Up @@ -137,3 +137,11 @@ def test_special_number(self):
num2words(1000101017, lang="vi"),
"một tỷ một trăm lẻ một nghìn lẻ mười bảy"
)

def test_negative(self):
self.assertEqual(num2words(-1, lang="vi"), "âm một")
self.assertEqual(num2words(-19, lang="vi"), "âm mười chín")
self.assertEqual(num2words(-20, lang="vi"), "âm hai mươi")
self.assertEqual(num2words(-100, lang="vi"), "âm một trăm")
self.assertEqual(num2words(-1.5, lang="vi"), "âm một phẩy năm mươi")