Ok, I think I get you but correct me if I'm wrong.
There is no single English work for lakh (100,000) or crore (10,000,000) other that
One Hundred Thousand
and
Ten Million
I suggest you try breaking it down by sets of 10^3 and work through the Tens and Hundreds at each 10^3 in magnitude.
Pseudo-code like this
units = number % 1000
thousands = number / 1000
tUnits = thousands % 1000
millions = thousands / 1000
mUnits = millions % 1000
string result = "";
if(millions>0){
result += UnitString(mUnits)
result += " million"
}
if(Thousands>0){
result += UnitString(mUnits)
result += " thousand"
}
if(number>0){
result += UnitString(mUnits)
}
...
private string UnitsString(int Units){
}
...
so the numbers should turn out like this:
10,000,000 = "Ten million"
12,123,123 = "Twelve million One hundred and Twenty Three Thousand One hundred and Twenty Three"
The same pattern is true of all English (Arabic) numbers of any magnitude.
10^(3*1) = 10^3 = Thousand = 1,000
10^(3*2) = 10^6 = Million = 1,000,000
10^(3*3) = 10^9 = Billion = 1,000,000,000
10^(3*4) = 10^12 = Trillion = 1,000,000,000,000
10^(3*5) = 10^15 = Quadrillion = 1,000,000,000,000,000
10^(3*6) = 10^18 = Quintilian = 1,000,000,000,000,000,000
Hope that helps
Andy ^_^