01.
public
List<String> NumberToWordEN(
int
number)
02.
{
03.
04.
05.
var unitsMap =
new
[] {
"zero"
,
"one"
,
"two"
,
"three"
,
"four"
,
"five"
,
"six"
,
"seven"
,
"eight"
,
"nine"
,
"ten"
,
"eleven"
,
"twelve"
,
"thirteen"
,
"fourteen"
,
"fifteen"
,
"sixteen"
,
"seventeen"
,
"eighteen"
,
"nineteen"
};
06.
var tensMap =
new
[] {
"zero"
,
"ten"
,
"twenty"
,
"thirty"
,
"forty"
,
"fifty"
,
"sixty"
,
"seventy"
,
"eighty"
,
"ninety"
};
07.
08.
09.
if
(number == 0)
10.
{
11.
ttsEN.Add(
"zero"
);
12.
return
ttsEN;
13.
}
14.
string
words =
""
;
15.
16.
if
((number / 1000000) > 0)
17.
{
18.
words += NumberToWordEN(number / 1000000) +
" million "
;
19.
20.
ttsEN.Add(unitsMap[(number / 1000000)]);
21.
ttsEN.Add(
"million"
);
22.
23.
number %= 1000000;
24.
}
25.
26.
if
((number / 1000) > 0)
27.
{
28.
words += NumberToWordEN(number / 1000) +
" thousand "
;
29.
30.
ttsEN.Add(unitsMap[(number / 1000)]);
31.
ttsEN.Add(
"thousand"
);
32.
33.
number %= 1000;
34.
}
35.
36.
if
((number / 100) > 0)
37.
{
38.
words += NumberToWordEN(number / 100) +
" hundred "
;
39.
40.
ttsEN.Add(unitsMap[(number / 100)]);
41.
ttsEN.Add(
"hundred"
);
42.
43.
number %= 100;
44.
}
45.
46.
if
(number > 0)
47.
{
48.
if
(words !=
""
)
49.
{
50.
words +=
"and "
;
51.
ttsEN.Add(
"and"
);
52.
}
53.
54.
if
(number < 20)
55.
{
56.
words += unitsMap[number];
57.
ttsEN.Add(unitsMap[number]);
58.
}
59.
else
60.
{
61.
words += tensMap[number / 10];
62.
ttsEN.Add(tensMap[number / 10]);
63.
64.
if
((number % 10) > 0)
65.
{
66.
words +=
"-"
+ unitsMap[number % 10];
67.
ttsEN.Add(unitsMap[number % 10]);
68.
}
69.
}
70.
71.
}
72.
return
ttsEN;
73.
74.
}