static void John_AmountToWords(Args _args)

{

real amount = 1011.05;

int numOfPennies = frac(amount)*100 mod 100;

int test = real2int(round(amount,0));

int paise;

int numOfTenths;

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

str 40 textpaise;

int tmpnumofpennies;

int temp;

str 200 returntxt;

int checkPower(int _test, int _power)

{

int 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 1000000000 :

{

returntxt = returntxt + ‘ ‘ + billions;

_test = _test MOD 1000000000;

break;

}

case 10000000 :

{

returntxt = returntxt + ‘ ‘ + crores;

_test = _test MOD 10000000;

break;

}

case 100000 :

{

returntxt = returntxt + ‘ ‘ + lakhs;

_test = _test MOD 100000;

break;

}

case 1000 :

{

returntxt = returntxt + ‘ ‘ + thousands;

_test = _test MOD 1000;

break;

}

case 100 :

{

returntxt = returntxt + ‘ ‘ + hundreds;

_test = _test MOD 100;

break;

}

}

}

return _test;

}

ones[1] = ‘@SYS26620’;

ones[2] = ‘@SYS26621’;

ones[3] = ‘@SYS26622’;

ones[4] = ‘@SYS26626’;

ones[5] = ‘@SYS26627’;

ones[6] = ‘@SYS26628’;

ones[7] = ‘@SYS26629’;

ones[8] = ‘@SYS26630’;

ones[9] = ‘@SYS26631’;

ones[10] = ‘@SYS26632’;

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] = ‘Not used’;

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 = ‘@SYS26651’;

thousands = ‘@SYS26652’;

lakhs = ‘Lakh’;

crores = ‘Crore’;

millions = ‘@SYS26653’;

billions = ‘@SYS26654’;

test = checkPower(test, 1000000000);

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 = test;

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

}

if (numOfPennies)

{

returntxt = returntxt + ‘ ‘ + ‘@SYS5534’ + ‘\n\n’;

}

paise=numofPennies;

if(paise)

{

if(paise >=20)

{

numofTenths= paise DIV 10;

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

numofTenths = numofTenths MOD 10;

paise=paise MOD 10;

}

if(paise >=1)

{

numOfTenths=paise;

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

}

returntxt=returntxt+” Paise”;

}

info(strFmt(‘%1’,returntxt + ” Only”));

}