01.
#region _ToArabicToThaiText
02.
public
static
string
ToArabicToThaiText(
this
object
input)
03.
{
04.
05.
string
txtReturn =
""
,txtdecVal =
""
,txtintVal =
""
,n;
06.
string
[] num = {
"ศูนย์"
,
"หนึ่ง"
,
"สอง"
,
"สาม"
,
"สี่"
,
"ห้า"
,
"หก"
,
"เจ็ด"
,
"แปด"
,
"เก้า"
,
"สิบ"
};
07.
string
[] rank = {
""
,
"สิบ"
,
"ร้อย"
,
"พัน"
,
"หมื่น"
,
"แสน"
,
"ล้าน"
,
"สิบ"
,
"ร้อย"
,
"พัน"
,
"หมื่น"
,
"แสน"
,
"ล้าน"
,
"สิบ"
,
"ร้อย"
,
"พัน"
,
"หมื่น"
,
"แสน"
,
"ล้าน"
};
08.
09.
10.
double
amount;
11.
try
{ amount = Convert.ToDouble(input); }
12.
catch
{ amount = 0; }
13.
14.
15.
string
[] temp = amount.ToString().Split(
'.'
);
16.
17.
string
intVal = temp[0];
18.
19.
string
decVal = (temp.Length > 1) ? temp[1] :
""
;
20.
21.
for
(
int
i = 0; i < intVal.Length; i++)
22.
{
23.
n = intVal.Substring(i, 1);
24.
if
(n !=
"0"
)
25.
{
26.
if
(((i == (intVal.Length - 1)) || (i == (intVal.Length - 7) || (i == (intVal.Length - 13)))) && (n ==
"1"
))
27.
txtintVal +=
"เอ็ด"
;
28.
else
if
(((i == (intVal.Length - 2)) || (i == (intVal.Length - 8) || (i == (intVal.Length - 14)))) && (n ==
"2"
))
29.
txtintVal +=
"ยี่"
;
30.
else
if
((i == (intVal.Length - 2)) && (n ==
"1"
))
31.
txtintVal +=
""
;
32.
else
33.
txtintVal += num[Convert.ToInt32(n)];
34.
txtintVal += rank[(intVal.Length - i) - 1];
35.
}
36.
}
37.
38.
39.
for
(
int
i = 0; i < decVal.Length; i++)
40.
{
41.
txtdecVal += (decVal.Substring(i, 1) ==
"0"
)?
"ศูนย์"
:num[Convert.ToInt32(decVal.Substring(i, 1))];
42.
}
43.
44.
45.
txtReturn = txtintVal;
46.
if
(txtdecVal.Trim().Length>0)
47.
txtReturn +=
"จุด"
+ txtdecVal;
48.
49.
50.
return
txtReturn;
51.
52.
}
53.
public
static
string
ToArabicToThaiText(
this
int
input)
54.
{
55.
return
input.ToString().ToArabicToThaiText();
56.
}
57.
public
static
string
ToArabicToThaiText(
this
double
input)
58.
{
59.
return
input.ToString().ToArabicToThaiText();
60.
}
61.
62.
63.
#endregion