Numeric to string

Hi friends,

I want to display my amount in words, for that i am using the function numerals2txt()…but its giving as

suppose my amount is 2033 , its converting as two thousand and 33/100

I don’t want to display like this i want two thousand and thirty three

Is there any other function for this … plz help me with this

Hi, Add the below method to the Global class - which will convert the number into Indian format

(or)

simply call the below method by passing the value.

static TempStr numeralsToTxt_IN(real _num)

{

//real _num = 2.315;

int numOfPennies = (decround(frac(_num), 2) * 100) mod 100;

real test = _num - frac(_num);

int numOfTenths;

str 20 ones[19], tenths[9], hundreds, thousands, lakhs, crores;

int64 temp;

str 200 returntxt;

str 200 pennytxt;

int penny;

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)

{

numOfPower = _test 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];

numOfPower = numOfPower mod 10;

}

switch(_power)

{

case 10000000 :

{

returntxt = returntxt + ’ ’ + Crores;

_test = modOperator(_test, 10000000);

break;

}

case 100000 :

{

returntxt = returntxt + ’ ’ + lakhs;

_test = modOperator(_test, 100000);

break;

}

case 1000 :

{

returntxt = returntxt + ’ ’ + thousands;

_test = modOperator(_test, 1000);

break;

}

case 100 :

{

returntxt = returntxt + ’ ’ + hundreds;

_test = modOperator(_test, 100);

break;

}

}

}

return _test;

}

#Define.text_1(‘One’)

#Define.text_2(‘Two’)

#Define.text_3(‘Three’)

#Define.text_4(‘Four’)

#Define.text_5(‘Five’)

#Define.text_6(‘Six’)

#Define.text_7(‘Seven’)

#Define.text_8(‘Eight’)

#Define.text_9(‘Nine’)

#Define.text_10(‘Ten’)

#Define.text_11(‘Eleven’)

#Define.text_12(‘Twelve’)

#Define.text_13(‘Thirteen’)

#Define.text_14(‘Fourteen’)

#Define.text_15(‘Fifteen’)

#Define.text_16(‘Sixteen’)

#Define.text_17(‘Seventeen’)

#Define.text_18(‘Eighteen’)

#Define.text_19(‘Nineteen’)

#Define.text_20(‘Twenty’)

#Define.text_30(‘Thirty’)

#Define.text_40(‘Forty’)

#Define.text_50(‘Fifty’)

#Define.text_60(‘Sixty’)

#Define.text_70(‘Seventy’)

#Define.text_80(‘Eighty’)

#Define.text_90(‘Ninety’)

#Define.text_100(‘Hundred’)

#Define.text_1000(‘Thousand’)

#Define.text_100000(‘Lakh’)

#Define.text_10000000(‘Crore’)

#Define.text_and(‘Rupees and’)

#Define.text_paise(‘Paise Only’)

#Define.text_ruppe(‘Rupees Only’)

ones[1] = #text_1;

ones[2] = #text_2;

ones[3] = #text_3;

ones[4] = #text_4;

ones[5] = #text_5;

ones[6] = #text_6;

ones[7] = #text_7;

ones[8] = #text_8;

ones[9] = #text_9;

ones[10] = #text_10;

ones[11] = #text_11;

ones[12] = #text_12;

ones[13] = #text_13;

ones[14] = #text_14;

ones[15] = #text_15;

ones[16] = #text_16;

ones[17] = #text_17;

ones[18] = #text_18;

ones[19] = #text_19;

tenths[1] = ‘Not used’;

tenths[2] = #text_20;

tenths[3] = #text_30;

tenths[4] = #text_40;

tenths[5] = #text_50;

tenths[6] = #text_60;

tenths[7] = #text_70;

tenths[8] = #text_80;

tenths[9] = #text_90;

hundreds = #text_100;

thousands = #text_1000;

lakhs = #text_100000;

crores = #text_10000000;

test = checkPower(test, 10000000);

test = checkPower(test, 100000);

test = checkPower(test, 1000);

test = checkPower(test, 100);

if (test >= 20)

{

numOfTenths = test div 10;

returntxt = returntxt + ’ ’ + tenths[numofTenths];

numOfTenths = numOfTenths mod 10;

test = test mod 10;

}

if (test >= 1)

{

numOfTenths = real2int(test);

returntxt = returntxt + ’ ’ + ones[numOfTenths];

}

if (numOfPennies)

{

if (numOfPennies >= 20)

{

penny = numOfPennies div 10;

pennytxt = tenths[penny];

numOfPennies = numOfPennies mod 10;

}

if (numOfPennies >= 1)

{

pennytxt = pennytxt + ’ ’ + ones[numOfPennies];

}

returntxt = returntxt + ’ ’ + #text_and + ’ ’ + pennytxt + ’ ’ +#text_paise;

}

else

{

returntxt = returntxt + ’ ’ + #text_ruppe;

}

return returntxt;

// info(strfmt("%1",returntxt));

}

Manju [Y]

you can check The bankcheque reports.

Hi Jyothi,

Copy the Numerals2txt method and create an new method in the global class and paste it there, if you dont require pennies to be printed,

Just comment the

/if (numOfPennies)
{
returntxt = '
’ + returntxt + ’ ’ + “@SYS5534” + ’ ’ + num2str(numOfPennies,0,0,0,0) + ‘/100’;
}
else
{
returntxt = '
’ + returntxt + ’ ’ + “@SYS5534” + ’ ’ + ‘00/100’;
}
/

in the newly pasted method… and call this method to ur requirement…

Hi friends,

Thank u soo much for your response, its working fine…

hi,

suppose i want to print after decimal place then,

for example:- 112.25 - one hundred twelve and twenty five only

Hi ,

It is working for decimals also.

Hi,

You can use/fallow the suggested method in my previous post… [:)]

Manju…[Y]