Skip to content

Commit 5bacc2b

Browse files
Merge pull request #505 from Nika-Soltani-Tehrani/fix-numbers-issue
fix 15, 16, 17, 18, 19 issue
2 parents 3ef32f0 + 77fbe91 commit 5bacc2b

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

num2words/lang_FA.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
# Copyright (c) 2013, Savoir-faire Linux inc. All Rights Reserved.
44
# Copyright (c) 2018, Abdullah Alhazmy, Alhazmy13. All Rights Reserved.
55
# Copyright (c) 2020, Hamidreza Kalbasi. All Rights Reserved.
6+
# Copyright (c) 2023, Nika Soltani Tehrani. All Rights Reserved.
67

78
# This library is free software; you can redistribute it and/or
89
# modify it under the terms of the GNU Lesser General Public
@@ -28,10 +29,10 @@
2829
"دوازده",
2930
"سیزده",
3031
"چهارده",
31-
"پونزده",
32-
"شونزده",
33-
"هیفده",
34-
"هیجده",
32+
"پانزده",
33+
"شانزده",
34+
"هفده",
35+
"هجده",
3536
"نوزده",
3637
]
3738

@@ -101,9 +102,9 @@ def float2tuple(self, value):
101102
return pre, post, self.precision
102103

103104
def cardinal3(self, number):
104-
if (number < 19):
105+
if number <= 19:
105106
return farsiOnes[number]
106-
if (number < 100):
107+
if number < 100:
107108
x, y = divmod(number, 10)
108109
if y == 0:
109110
return farsiTens[x]
@@ -118,19 +119,19 @@ def cardinalPos(self, number):
118119
res = ''
119120
for b in farsiBig:
120121
x, y = divmod(x, 1000)
121-
if (y == 0):
122+
if y == 0:
122123
continue
123124
yx = self.cardinal3(y) + b
124125
if b == ' هزار' and y == 1:
125126
yx = 'هزار'
126-
if (res == ''):
127+
if res == '':
127128
res = yx
128129
else:
129130
res = yx + farsiSeperator + res
130131
return res
131132

132133
def fractional(self, number, level):
133-
if (number == 5):
134+
if number == 5:
134135
return "نیم"
135136
x = self.cardinalPos(number)
136137
ld3, lm3 = divmod(level, 3)
@@ -142,20 +143,21 @@ def to_currency(self, value):
142143

143144
def to_ordinal(self, number):
144145
r = self.to_cardinal(number)
145-
if (r[-1] == 'ه' and r[-2] == 'س'):
146+
if r[-1] == 'ه' and r[-2] == 'س':
146147
return r[:-1] + 'وم'
147148
return r + 'م'
148149

149150
def to_year(self, value):
150151
return self.to_cardinal(value)
151152

152-
def to_ordinal_num(self, value):
153+
@staticmethod
154+
def to_ordinal_num(value):
153155
return str(value)+"م"
154156

155157
def to_cardinal(self, number):
156158
if number < 0:
157159
return "منفی " + self.to_cardinal(-number)
158-
if (number == 0):
160+
if number == 0:
159161
return "صفر"
160162
x, y, level = self.float2tuple(number)
161163
if y == 0:

0 commit comments

Comments
 (0)