Hi all
i amconverting numeral to txt …
and i have written methood but in this it is printing like for 5478999 it is printing “five lakhs four hundreds Seventy eight thousands nine hundreds and Ninety nine Only”
but i want it like “fifty four lakh seventy eight thousand nine hundred ninty nine only”
help me
below is the code which i have written
static TempStr ltnumeralsToTxt_IND(real _num)
{
int numOfPennies = (decRound(frac(_num), 2) * 100) mod 100;
real test = _num - frac(_num);
int64 numOfTenths;
str 20 ones[19], tenths[9], hundreds, thousands, lakhs, crores, arabs;
int64 temp;
str 200 returntxt;
int64 testLoc;
//number to text
real modOperator(real a1, real a2)
{
int tmpi;
real tmp1, tmp2;
tmp1 = a1 / a2;
tmpi = real2int(tmp1);
tmp2 = tmpi;
return (tmp1 - tmp2)*a2;
}
real checkPower(real _test, int64 _power)
{
int64 numOfPower;
if (_test >= _power)
{
testLoc = real2double(_test);
numOfPower = testLoc div _power;
if (numOfPower >= 100)
{
temp = numOfPower div 100;
returntxt = returntxt + ’ ’ + ones[temp] + ’ ’ + hundreds;
numOfPower = numOfPower mod 100;
}
if (numOfPower >= 20)
{
temp = numOfPower div 10;
returntxt = returntxt + ’ ’ + tenths[temp];
numOfPower = numOfPower mod 10;
}
if (numOfPower >= 1)
{
returntxt = returntxt + ’ ’ + ones[numOfPower]; //LT
numOfPower = numOfPower mod 10;
}
switch(_power)
{
case 1000000000000 :
returntxt = returntxt + ’ ’ + arabs;
_test = modOperator(_test, 1000000000000.00);
break;
case 1000000000 :
returntxt = returntxt + ’ ’ + crores;
_test = modOperator(_test, 1000000000);
break;
case 1000000 :
returntxt = returntxt + ’ ’ + lakhs;
_test = modOperator(_test, 1000000);
break;
case 1000 :
returntxt = returntxt + ’ ’ + thousands;
_test = modOperator(_test, 1000);
break;
case 100 :
returntxt = returntxt + ’ ’ + hundreds;
_test = modOperator(_test, 100);
break;
}
}
return _test;
}
ones[1] = “one”;
ones[2] = “two”;
ones[3] = “three”;
ones[4] = “four”;
ones[5] = “five”;
ones[6] = “six”;
ones[7] = “seven”;
ones[8] = “eight”;
ones[9] = “nine”;
ones[10] = “ten”;
ones[11] = “@SYS26633”;
ones[12] = “@SYS26634”;
ones[13] = “@SYS26635”;
ones[14] = “@SYS26636”;
ones[15] = “@SYS26637”;
ones[16] = “@SYS26638”;
ones[17] = “@SYS26639”;
ones[18] = “@SYS26640”;
ones[19] = “@SYS26641”;
tenths[1] = “@SYS26642”;
tenths[2] = “@SYS26643”;
tenths[3] = “@SYS26644”;
tenths[4] = “@SYS26645”;
tenths[5] = “@SYS26646”;
tenths[6] = “@SYS26647”;
tenths[7] = “@SYS26648”;
tenths[8] = “@SYS26649”;
tenths[9] = “@SYS26650”;
hundreds = “hundreds”;
thousands = “thousands”;
Lakhs = “lakhs”;
crores = “crores”;
arabs = “arabs”;
test = checkPower(test, 10000000000);
test = checkPower(test, 100000000);
test = checkPower(test, 1000000);
test = checkPower(test, 1000);
test = checkPower(test, 100);
if (test >= 20)
{
testLoc = real2double(test);
numOfTenths = testLoc div 10;
returntxt = returntxt + ’ and ’ + tenths[numofTenths]; //
numOfTenths = numOfTenths mod 10;
test = real2int(test) mod 10;
}
/*
//aniCode
if (test >= 20)
{
testLoc = real2double(test);
numOfTenths = testLoc div 10;
if (returntxt != ‘’)
{
returntxt = returntxt + ’ and ’ + tenths[numofTenths]; //
}
else
{
returntxt = tenths[numofTenths]; //
}
numOfTenths = numOfTenths mod 10;
test = real2int(test) mod 10;
}
//EndAniCode
*/
if (test >= 1)
{
numOfTenths = real2int(test);
returntxt = returntxt + ’ ’ + ones[numOfTenths];
}
if (numOfPennies)
{
// returntxt = ‘***’ + returntxt + ’ ’ + “@SYS5534” + ’ ’ + num2str(numOfPennies,0,0,0,0) + ‘/100’;
returntxt = returntxt + ’ ’ + “@SYS5534” + ’ ’ ;
if(numOfPennies>=20)
{
numOfTenths=numOfPennies div 10;
numOfPennies = numOfPennies mod 10;
returntxt = returntxt + ’ ’ + tenths[numofTenths];
}
if (numOfPennies >= 1)
{
numOfTenths = real2int(numOfPennies);
returntxt = returntxt + ’ ’ + ones[numOfTenths];
}
returntxt = returntxt + ’ Paise Only’;
}
else
{
returntxt = returntxt + ’ Only’ ; //
}
return returntxt;
}