@@ -90,38 +90,38 @@ def bahttext(amount_number):
90
90
"""
91
91
Converts a number to Thai text and adds a suffix of "Baht" currency.
92
92
93
- Similar to BAHTTEXT funcation in Excel
93
+ Similar to BAHTTEXT function in Excel
94
94
"""
95
- if amount_number is None :
96
- return ""
97
-
98
- if amount_number == 0 :
99
- return "ศูนย์บาทถ้วน"
100
-
101
- amount_number = number_format (amount_number , 2 ).replace (" " , "" )
102
- pt = amount_number .find ("." )
103
- number , fraction = "" , ""
104
- amount_number1 = amount_number .split ("." )
95
+ ret = ""
105
96
106
- if not pt :
107
- number = amount_number
97
+ if amount_number is None :
98
+ pass
99
+ elif amount_number == 0 :
100
+ ret = "ศูนย์บาทถ้วน"
108
101
else :
109
- amount_number = amount_number .split ("." )
110
- number = amount_number [0 ]
111
- fraction = int (amount_number1 [1 ])
102
+ amount_number = number_format (amount_number , 2 ).replace (" " , "" )
103
+ pt = amount_number .find ("." )
104
+ number , fraction = "" , ""
105
+ amount_number1 = amount_number .split ("." )
112
106
113
- ret = ""
114
- number = ast .literal_eval (number .replace ("," , "" ))
107
+ if not pt :
108
+ number = amount_number
109
+ else :
110
+ amount_number = amount_number .split ("." )
111
+ number = amount_number [0 ]
112
+ fraction = int (amount_number1 [1 ])
115
113
116
- baht = num_to_thaiword (number )
117
- if baht != "" :
118
- ret = "" .join ([ret , baht , "บาท" ])
114
+ number = ast .literal_eval (number .replace ("," , "" ))
119
115
120
- satang = num_to_thaiword (fraction )
121
- if satang != "" and satang != "ศูนย์" :
122
- ret = "" .join ([ret , satang , "สตางค์" ])
123
- else :
124
- ret = "" .join ([ret , "ถ้วน" ])
116
+ baht = num_to_thaiword (number )
117
+ if baht != "" :
118
+ ret = "" .join ([ret , baht , "บาท" ])
119
+
120
+ satang = num_to_thaiword (fraction )
121
+ if satang != "" and satang != "ศูนย์" :
122
+ ret = "" .join ([ret , satang , "สตางค์" ])
123
+ else :
124
+ ret = "" .join ([ret , "ถ้วน" ])
125
125
126
126
return ret
127
127
@@ -131,42 +131,42 @@ def num_to_thaiword(number):
131
131
:param float number: a float number (with decimals) indicating a quantity
132
132
:return: a text that indicates the full amount in word form, properly ending each digit with the right term.
133
133
"""
134
- if number is None :
135
- return ""
136
-
137
- if number == 0 :
138
- return "ศูนย์"
139
-
140
- position_call = ["แสน" , "หมื่น" , "พัน" , "ร้อย" , "สิบ" , "" ]
141
- number_call = ["" , "หนึ่ง" , "สอง" , "สาม" , "สี่" , "ห้า" , "หก" , "เจ็ด" , "แปด" , "เก้า" ]
142
-
143
134
ret = ""
144
- if number > 1000000 :
145
- ret += num_to_thaiword (int (number / 1000000 )) + "ล้าน"
146
- number = int (math .fmod (number , 1000000 ))
147
- divider = 100000
148
-
149
- pos = 0
150
- while number > 0 :
151
- d = int (number / divider )
152
-
153
- if (divider == 10 ) and (d == 2 ):
154
- ret += "ยี่"
155
- elif (divider == 10 ) and (d == 1 ):
156
- ret += ""
157
- elif (divider == 1 ) and (d == 1 ) and (ret != "" ):
158
- ret += "เอ็ด"
159
- else :
160
- ret += number_call [d ]
161
135
162
- if d :
163
- ret += position_call [pos ]
164
- else :
165
- ret += ""
166
-
167
- number = number % divider
168
- divider = divider / 10
169
- pos += 1
136
+ if number is None :
137
+ pass
138
+ elif number == 0 :
139
+ ret = "ศูนย์"
140
+ else :
141
+ _POS_CALL = ["แสน" , "หมื่น" , "พัน" , "ร้อย" , "สิบ" , "" ]
142
+ _NUM_CALL = ["" , "หนึ่ง" , "สอง" , "สาม" , "สี่" , "ห้า" , "หก" , "เจ็ด" , "แปด" , "เก้า" ]
143
+
144
+ if number > 1000000 :
145
+ ret += num_to_thaiword (int (number / 1000000 )) + "ล้าน"
146
+ number = int (math .fmod (number , 1000000 ))
147
+ divider = 100000
148
+
149
+ pos = 0
150
+ while number > 0 :
151
+ d = int (number / divider )
152
+
153
+ if (divider == 10 ) and (d == 2 ):
154
+ ret += "ยี่"
155
+ elif (divider == 10 ) and (d == 1 ):
156
+ ret += ""
157
+ elif (divider == 1 ) and (d == 1 ) and (ret != "" ):
158
+ ret += "เอ็ด"
159
+ else :
160
+ ret += _NUM_CALL [d ]
161
+
162
+ if d :
163
+ ret += _POS_CALL [pos ]
164
+ else :
165
+ ret += ""
166
+
167
+ number = number % divider
168
+ divider = divider / 10
169
+ pos += 1
170
170
171
171
return ret
172
172
0 commit comments