lparameter n_amount
public ones,teen,tens
ones = 'ONE TWO THREEFOUR FIVE SIX SEVENEIGHTNINE TEN '
teen = 'ELEVEN TWELVE THIRTEEN FOURTEEN FIFTEEN SIXTEEN SEVENTEENEIGHTEEN NINETEEN '
tens = ' TWENTY THIRTY FOURTY FIFTY SIXTY SEVENTYEIGHTY NINETY '
c_string = transform(n_amount,"999,999,999,999,999.99")
&& work in bits: trillions,billions,millions,thousands,hundreds,cents
STORE "" TO tril,bill,mill,thou,hund,cens
if val(substr(c_string,01,3)) != 0 then
o_string = substr(c_string,1,3)
tril = Get_Words(o_string) + "TRILLION "
endif
if val(substr(c_string,05,3)) != 0 then
o_string = substr(c_string,5,3)
bill = Get_Words(o_string) + "BILLION "
endif
if val(substr(c_string,09,3)) != 0 then
o_string = substr(c_string,9,3)
mill = Get_Words(o_string) + "MILLION "
endif
if val(substr(c_string,13,3)) != 0 then
o_string = substr(c_string,13,3)
thou = Get_Words(o_string) + " THOUSAND "
endif
if val(substr(c_string,17,3)) != 0 then
o_string = substr(c_string,17,3)
hund = Get_Words(o_string)
endif
hund = hund + "Shillings"
if val(right(c_string,2)) != 0 then
o_string = " " + right(c_string,2)
cens = Get_Words(o_string) + " CENTS"
cens = iif(n_amount>0," AND ","") + CENS
endif
cens = cens + " only"
return proper(tril + bill + mill + thou + hund + cens)
*** "("+alltrim(c_string)+") " +
*** && convert to words
function get_words(_string)
x1 = ""
x2 = ""
if val(left(_string,1)) != 0 then
y = val(left(_string,1))
x1 = allt(substr(ones,(5*y)-4,5)) + " HUNDRED " + iif(val(substr(_string,2,2)) != 0,"AND ","")
endif
if val(substr(_string,2,1)) != 0 then
y = val(substr(_string,2,1))
if y = 1 .and. val(substr(_string,3,1)) != 0 then
x2 = allt(substr(teen,(9*val(substr(_string,3,1)))-8,9)) + " "
endif
if y = 1 .and. val(substr(_string,3,1)) = 0 then
x2 = iif(x1!=""," AND TEN "," TEN ")
endif
if y > 1 then
x2 = allt(substr(tens,(7*y)-6,7))
endif
if y > 1 and val(substr(_string,3,1)) != 0 then
y1 = val(substr(_string,3,1))
x2 = x2 + "-" + allt(substr(ones,(5*y1)-4,5)) + " "
endif
endif
if val(substr(_string,2,1)) = 0 and val(substr(_string,3,1)) != 0 then
y = val(substr(_string,3,1))
x2 = x2 + allt(substr(ones,(5*y)-4,5)) +" "
endif
return x1 + x2