34 lines
912 B
Text
34 lines
912 B
Text
Eng(n:int)={
|
|
my(tmp,s="");
|
|
if (n >= 1000000,
|
|
tmp = n\1000000;
|
|
s = Str(s, Eng(tmp), " million");
|
|
n -= tmp * 1000000;
|
|
if (!n, return(s));
|
|
s = Str(s, " ")
|
|
);
|
|
if (n >= 1000,
|
|
tmp = n\1000;
|
|
s = Str(s, Eng(tmp), " thousand");
|
|
n -= tmp * 1000;
|
|
if (!n, return(s));
|
|
s = Str(s, " ")
|
|
);
|
|
if (n >= 100,
|
|
tmp = n\100;
|
|
s = Str(s, Edigit(tmp), " hundred");
|
|
n -= tmp * 100;
|
|
if (!n, return(s));
|
|
s = Str(s, " ")
|
|
);
|
|
if (n < 20,
|
|
return (Str(s, ["one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "ninteen"][n]))
|
|
);
|
|
tmp = n\10;
|
|
s = Str(s, [0, "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety"][tmp]);
|
|
n -= tmp * 10;
|
|
if (n, Str(s, "-", Edigit(n)), s)
|
|
};
|
|
Edigit(n)={
|
|
["one", "two", "three", "four", "five", "six", "seven", "eight", "nine"][n]
|
|
};
|