Numero decimal a letras - foxpro

Función que acepta un numero decimal y retorna el correspondiente numero convertido a letras (útil para imprimir cheques, p.e.). La función coloca "Bolívares" ya que se usa en programas para Venezuela.
				PARAMETER XNUM
DECLARE U(10),D(10),C(10),E(10)
U(1) = ""
U(2) = "UNO"
U(3) = "DOS"
U(4) = "TRES"
U(5) = "CUATRO"
U(6) = "CINCO"
U(7) = "SEIS"
U(8) = "SIETE"
U(9) = "OCHO"
U(10) = "NUEVE"
***----
D(1) = ""
D(2) = "DIEZ"
D(3) = "VEINTE"
D(4) = "TREINTA"
D(5) = "CUARENTA"
D(6) = "CINCUENTA"
D(7) = "SESENTA"
D(8) = "SETENTA"
D(9) = "OCHENTA"
D(10) = "NOVENTA"
***-----
C(1) = ""
C(2) = "CIENTO"
C(3) = "DOSCIENTOS"
C(4) = "TRESCIENTOS"
C(5) = "CUATROCIENTOS"
C(6) = "QUINIENTOS"
C(7) = "SEISCIENTOS"
C(8) = "SETECIENTOS"
C(9) = "OCHOCIENTOS"
C(10) = "NOVECIENTOS"
***-------
E(1) = "DIEZ"
E(2) = "ONCE"
E(3) = "DOCE"
E(4) = "TRECE"
E(5) = "CATORCE"
E(6) = "QUINCE"
E(7) = "DIECISEIS"
E(8) = "DIECISIETE"
E(9) = "DIECIOCHO"
E(10) = "DIECINUEVE"
***-------

M4 = INT(XNUM / 1000000000)
M3 = INT(XNUM / 1000000) - (M4 * 1000)
M2 = INT(XNUM / 1000) - (M3 * 1000) - (M4 * 1000000)
M1 = INT(XNUM) - (M2 * 1000) - (M3 * 1000000) - (M4 * 1000000000)
XCS = INT((XNUM - INT(XNUM))*100)
XR2 = ""
IF !EMPTY(M4)
XR2 = XR2 + TRIO(M4,.F.) + " MIL "
ENDIF
IF !EMPTY(M3)
XR2 = XR2 + TRIO(M3,.F.) + IIF(M3=1," MILLON "," MILLLONES ")
ENDIF
IF !EMPTY(M2)
XR2 = XR2 + TRIO(M2,.F.) + " MIL "
ENDIF
IF !EMPTY(M1)
XR2 = XR2 + TRIO(M1,.T.)
ENDIF
* ANEXAR LOS CENTIMOS
XR2 = XR2 + " BOLIVARES CON " + STRTRAN(STR(XCS,2,0)," ","0") + "/100 CENTIMOS"
DO WHILE AT(" ",XR2) > 0
XR2 = STRTRAN(XR2," "," ")
ENDDO
RETURN XR2

FUNCTION TRIO
PARAMETER NUMERO,XUNO
U(2) = IIF(XUNO,"UNO","UN")
X3 = INT(NUMERO / 100)
X2 = INT(NUMERO / 10) - X3*10
X1 = NUMERO - X3*100 - X2*10
XR = ""
*****
DO CASE
CASE NUMERO = 100
XR = "CIEN"
OTHER
XR = C(X3+1) + " "
IF X2 = 1
XR = XR + E(X1+1)
ELSE
XR = XR + D(X2+1) + IIF(X1>0 AND X2>0," Y ","") + U(X1+1)
ENDIF
ENDCASE
RETURN XR
Descargar adjuntos
COMPARTE ESTE TUTORIAL

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
TUTORIAL ANTERIOR

SIGUIENTE TUTORIAL

¡SÉ EL PRIMERO EN COMENTAR!
Conéctate o Regístrate para dejar tu comentario.