Este script permite
convertir un numero a su equivalente en letras. Corresponde a una funcion
la cual recibe como argumento un numero (transformado a string) y entrega
como resultado un string (la cadena de caracteres correspondinete al
numero). Funciona hasta 999.999.999. Me gustaria posteralo ya que busque
por todo internet y no encontre nada parecido y lo tuve que programar. Se
aceptan sugerencias o modificaciones para aumentar el rango de conversion.
espero que les sirva.
string ls_numero_letras[90], ls_letras
integer li_largo_numero,li_largo_total
long li_numero,li_numero_paso,li_numero_paso2
ls_letras=''
ls_numero_letras[1]='un'
ls_numero_letras[2]='dos'
ls_numero_letras[3]='tres'
ls_numero_letras[4]='cuatro'
ls_numero_letras[5]='cinco'
ls_numero_letras[6]='seis'
ls_numero_letras[7]='siete'
ls_numero_letras[8]='ocho'
ls_numero_letras[9]='nueve'
ls_numero_letras[10]='diez'
ls_numero_letras[11]='once'
ls_numero_letras[12]='doce'
ls_numero_letras[13]='trece'
ls_numero_letras[14]='catorce'
ls_numero_letras[15]='quince'
ls_numero_letras[16]='dieciseis'
ls_numero_letras[17]='diecisiete'
ls_numero_letras[18]='dieciocho'
ls_numero_letras[19]='diecinueve'
ls_numero_letras[20]='veinti'
ls_numero_letras[30]='treinta'
ls_numero_letras[40]='cuarenta'
ls_numero_letras[50]='cincuenta'
ls_numero_letras[60]='sesenta'
ls_numero_letras[70]='setenta'
ls_numero_letras[80]='ochenta'
ls_numero_letras[90]='noventa'
li_numero=long(numero)
li_largo_numero=len(string(li_numero))
li_largo_total=len(string(li_numero))
IF li_largo_numero=9 THEN
li_numero_paso=li_numero/100000000
IF li_numero_paso=1 THEN
IF li_numero>100999999 THEN
ls_letras=ls_letras+'ciento '
ELSE
ls_letras=ls_letras+'cien '
END IF
ELSE
IF li_numero_paso=5 THEN
ls_letras=ls_letras+'quinientos '
ELSE
IF li_numero_paso=7 THEN
ls_letras=ls_letras+'setecientos '
ELSE
IF li_numero_paso=9 THEN
ls_letras=ls_letras+'novecientos
'
ELSE
ls_letras=ls_letras+ls_numero_letras[li_numero_paso]+'cientos '
END IF
END IF
END IF
END IF
li_numero=li_numero - (li_numero_paso*100000000)
IF li_numero=0 THEN
li_largo_numero=0
ELSE
li_largo_numero=len(string(li_numero))
END IF
IF li_largo_numero20 THEN
li_numero_paso=li_numero/10000000
li_numero_paso=li_numero_paso*10
ls_letras=ls_letras+ls_numero_letras[li_numero_paso]
ELSE
IF li_numero_paso2=20 THEN
ls_letras=ls_letras+'veinte'
ELSE
ls_letras=ls_letras+ls_numero_letras[li_numero_paso2]
END IF
END IF
IF li_numero_paso2>20 THEN
li_numero_paso=li_numero/10000000
li_numero=li_numero - (li_numero_paso*10000000)
ELSE
li_numero_paso=li_numero/1000000
li_numero=li_numero - (li_numero_paso*1000000)
END IF
IF li_numero>999999 and li_numero_paso2>30 THEN
ls_letras=ls_letras+' y '
END IF
IF li_numero=0 THEN
li_largo_numero=0
ELSE
li_largo_numero=len(string(li_numero))
END IF
IF li_largo_numero100999 THEN
ls_letras=ls_letras+'ciento '
ELSE
ls_letras=ls_letras+'cien '
END IF
ELSE
IF li_numero_paso=5 THEN
ls_letras=ls_letras+'quinientos '
ELSE
IF li_numero_paso=7 THEN
ls_letras=ls_letras+'setecientos '
ELSE
IF li_numero_paso=9 THEN
ls_letras=ls_letras+'novecientos
'
ELSE
ls_letras=ls_letras+ls_numero_letras[li_numero_paso]+'cientos '
END IF
END IF
END IF
END IF
li_numero=li_numero - (li_numero_paso*100000)
IF li_numero=0 THEN
li_largo_numero=0
ELSE
li_largo_numero=len(string(li_numero))
END IF
IF li_largo_numero20 THEN
li_numero_paso=li_numero/10000
li_numero_paso=li_numero_paso*10
ls_letras=ls_letras+ls_numero_letras[li_numero_paso]
ELSE
IF li_numero_paso2=20 THEN
ls_letras=ls_letras+'veinte'
ELSE
ls_letras=ls_letras+ls_numero_letras[li_numero_paso2]
END IF
END IF
IF li_numero_paso2>20 THEN
li_numero_paso=li_numero/10000
li_numero=li_numero - (li_numero_paso*10000)
ELSE
li_numero_paso=li_numero/1000
li_numero=li_numero - (li_numero_paso*1000)
END IF
IF li_numero>999 and li_numero_paso2>30 THEN
ls_letras=ls_letras+' y '
END IF
IF li_numero=0 THEN
li_largo_numero=0
ELSE
li_largo_numero=len(string(li_numero))
END IF
IF li_largo_numero100 THEN
ls_letras=ls_letras+'ciento '
ELSE
ls_letras=ls_letras+'cien '
END IF
ELSE
IF li_numero_paso=5 THEN
ls_letras=ls_letras+'quinientos '
ELSE
IF li_numero_paso=7 THEN
ls_letras=ls_letras+'setecientos '
ELSE
IF li_numero_paso=9 THEN
ls_letras=ls_letras+'novecientos
'
ELSE
ls_letras=ls_letras+ls_numero_letras[li_numero_paso]+'cientos '
END IF
END IF
END IF
END IF
li_numero=li_numero - (li_numero_paso*100)
IF li_numero=0 THEN
li_largo_numero=0
ELSE
li_largo_numero=len(string(li_numero))
END IF
END IF
IF li_largo_numero=2 THEN
IF li_numero>20 THEN
li_numero_paso=li_numero/10
li_numero_paso=li_numero_paso*10
ls_letras=ls_letras+ls_numero_letras[li_numero_paso]
ELSE
IF li_numero=20 THEN
ls_letras=ls_letras+'veinte'
ELSE
ls_letras=ls_letras+ls_numero_letras[li_numero]
END IF
END IF
IF li_numero>20 THEN
li_numero_paso=li_numero/10
li_numero=li_numero - (li_numero_paso*10)
ELSE
li_numero=0
END IF
IF li_numero>0 and li_numero_paso>2 THEN
ls_letras=ls_letras+' y '
END IF
IF li_numero=0 THEN
li_largo_numero=0
ELSE
li_largo_numero=len(string(li_numero))
END IF
END IF
IF li_largo_numero=1 AND li_numero0 THEN
ls_letras=ls_letras+ls_numero_letras[li_numero]
END IF
IF ls_letras='un' THEN
ls_letras=ls_letras+' peso'
ELSE
ls_letras=ls_letras+' pesos'
END IF
RETURN ls_letras





