General information
Category:
Coding, syntax & commands
>Hi to all
>im looking for read and understand any code routine to traslade any numeric value in letters
>for example 21 =twenty one
>or
>4235= "four thousand two hundred thirty five"
>thanks in advance
>Best Regards
========================================
I have the next program. It´s Works only in Spanish
**********************
FUNCTION NUMEROS(_NUM)
**********************
* Programa: NUMEROS.PRG
* Autor: Carlos Fidel Restrepo Duperly
* Fecha: 21-SEP-95
* Realizado para DURESPO
* Función que convierte una variable numérica "_NUM" en su
* equivalente en letras.
* Por estupidez del VFP 5, Un arreglo no puede tener como suscrito una
* variable tipo "Y" (Moneda) sino numérica
_Num = mTon(_Num)
Private _Dec, Cents, _Num, Letras, De, N, D, C, Millon, Miles, Letra_Mil, Decena
_DEC = set('decimals')
set decimals to 6
* Separa los centavos del número entero
CENTS = ltrim(str(100*(_NUM - int(_NUM)))) + '/100 M.L.'
_NUM = int(_NUM)
LETRAS = iif(_NUM = 0,'CERO',"") && "CERO" es un caso especial
DE = ''
* Define los números principales
dimension N[29], D[9], C[9]
N[ 1] = 'UN'
N[ 2] = 'DOS'
N[ 3] = 'TRES'
N[ 4] = 'CUATRO'
N[ 5] = 'CINCO'
N[ 6] = 'SEIS'
N[ 7] = 'SIETE'
N[ 8] = 'OCHO'
N[ 9] = 'NUEVE'
N[10] = 'DIEZ'
N[11] = 'ONCE'
N[12] = 'DOCE'
N[13] = 'TRECE'
N[14] = 'CATORCE'
N[15] = 'QUINCE'
N[16] = 'DIECISEIS'
N[17] = 'DIECISIETE'
N[18] = 'DIECIOCHO'
N[19] = 'DIECINUEVE'
N[20] = 'VEINTE'
N[21] = 'VEINTIUN'
N[22] = 'VEINTIDOS'
N[23] = 'VEINTITRES'
N[24] = 'VEINTICUATRO'
N[25] = 'VEINTICINCO'
N[26] = 'VEINTISEIS'
N[27] = 'VEINTISIETE'
N[28] = 'VEINTIOCHO'
N[29] = 'VEINTINUEVE'
D[ 1] = ''
D[ 2] = ''
D[ 3] = 'TREINTA'
D[ 4] = 'CUARENTA'
D[ 5] = 'CINCUENTA'
D[ 6] = 'SESENTA'
D[ 7] = 'SETENTA'
D[ 8] = 'OCHENTA'
D[ 9] = 'NOVENTA'
C[ 1] = 'CIEN'
C[ 2] = 'DOSCIENTOS'
C[ 3] = 'TRESCIENTOS'
C[ 4] = 'CUATROCIENTOS'
C[ 5] = 'QUINIENTOS'
C[ 6] = 'SEISCIENTOS'
C[ 7] = 'SETECIENTOS'
C[ 8] = 'OCHOCIENTOS'
C[ 9] = 'NOVECIENTOS'
if _NUM >=10^12
RETURN '**** NUMERO MUY GRANDE ****'
endif
if _NUM >=10^6
MILLON = int(_NUM/10^6)
_NUM = _NUM%10^6
LETRAS = L1000(MILLON)
LETRAS = iif(MILLON=1,"UN MILLON ",LETRAS +' MILLONES ')
DE = iif(_NUM = 0, ' DE',"")
endif
set decimal to (_DEC)
RETURN trim(L1000(_NUM)) + DE + ' PESOS CON ' + CENTS
FUNCTION L1000
**************
* Programa: L1000.PRG
* Autor: Carlos Fidel Restrepo Duperly
* Fecha: 21-SEP-95
* Realizado para DURESPO
* Función que trabaja con la función NUMEROS
* y trabaja con MILES
parameter _NUM
MILES = int(_NUM/1000)
if MILES > 0
_NUM = _NUM%1000
LETRA_MIL = L100(MILES)
LETRAS = LETRAS +;
iif(MILES=1,"MIL",LETRA_MIL +' MIL')+;
iif(_NUM = 0,"",' ')
endif
RETURN ltrim(LETRAS) + L100(_NUM)
FUNCTION L100
*************
* Programa: L100.PRG
* Autor: Carlos Fidel Restrepo Duperly
* Fecha: 21-SEP-95
* Realizado para DURESPO
* Función que trabaja con la función NUMEROS
* y trabaja con CIENTOS
parameter CIENTOS
LETRA = iif(CIENTOS<100,"",C[int(CIENTOS/100)]) +;
iif(between(CIENTOS,101,199),'TO',"")
DECENA = CIENTOS%100
do case
case between(DECENA,1,29)
LETRA = LETRA +' '+ N[DECENA]
case between(DECENA,30,99)
LETRA = LETRA +' '+ D[DECENA/10]+;
iif(DECENA%10=0,"",' Y '+ N[DECENA%10])
endcase
RETURN ltrim(LETRA)
Previous
Next
Reply
View the map of this thread
View the map of this thread starting from this message only
View all messages of this thread
View all messages of this thread starting from this message only