EL PORTAL DE POWERBUILDER

El portal de PowerBuilder en Español

  • Aumentar el tamaño de la letra
  • Tamaño de letra predeterminado
  • Reducir el tamaño de la letra
Home

Convertir un numero a su equivalente en letras

Correo electrónico Imprimir PDF
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
Última actualización el Martes 12 de Agosto de 2008 00:25  

Newsflash

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.