Necesito convertir un valor numérico en su respectiva descripción en letras. Por ejemplo: 1 ---> uno, 20 ----> veinte. Es un campo numérico el cual debo reflejar en un informe pero con el valor numérico. Gracias de antemano. [email protected] [email protected]
1 Respuesta
Respuesta de dfmarin
1
1
dfmarin, He usado Unix desde 1988, y comence con Linux en 1993, coordino...
Como no dices que lenguaje de programación, o que base de datos, ni nada medio parecido, lo único que te puedo enviar es una funciona de VBA (de hace mucho tiempo) que hace lo que quieres. Modifícala de acuerdo a tus necesidades. _ _ _ _ _ Diego Fernando Marin [] http://www.dfmarin.com _________________________________________________________________ Function LETRAS(Numero As Double) As String ' Tiene un problema al manejar el CIEN y el CIENTO, pero no amerita el esfuerzo por ahora ' por eso se quedo asi, y cualquier dato se corrige a MANO !. :-) Dim U(0 To 99) As String ' Unidades Dim C(1 To 9) As String ' Centenas U(0) = "" U(1) = "UN" U(2) = "DOS" U(3) = "TRES" U(4) = "CUATRO" U(5) = "CINCO" U(6) = "SEIS" U(7) = "SIETE" U(8) = "OCHO" U(9) = "NUEVE" U(10) = "DIEZ" U(11) = "ONCE" U(12) = "DOCE" U(13) = "TRECE" U(14) = "CATORCE" U(15) = "QUINCE" U(16) = "DIECISEIS" U(17) = "DIECISIETE" U(18) = "DIECIOCHO" U(19) = "DIECINUEVE" U(20) = "VEINTE" U(21) = "VEINTIUNO" U(22) = "VEINTIDOS" U(23) = "VEINTITRES" U(24) = "VEINTICUATRO" U(25) = "VEINTICINCO" ... Completa de U(26) a U(95), la caja de dialogo de TodoExpertos, no deja poner textos de más de 3400 caracteres. :-) U(96) = "NOVENTA Y SEIS" U(97) = "NOVENTA Y SIETE" U(98) = "NOVENTA Y OCHO" U(99) = "NOVENTA Y NUEVE" C(1) = "CIENTO" C(2) = "DOSCIENTOS" C(3) = "TRESCIENTOS" C(4) = "CUATROCIENTOS" C(5) = "QUINIENTOS" C(6) = "SEISCIENTOS" C(7) = "SETECIENTOS" C(8) = "OCHOCIENTOS" C(9) = "NOVECIENTOS" X = "" If Numero >= 1000000 Then If Numero >= 100000000 Then X = X + C(Numero \ 100000000) + " " Numero = Numero Mod 100000000 End If X = X + U(Numero \ 1000000) If (Numero \ 1000000) = 1 Then X = X + " MILLON " Else X = X + " MILLONES " End If Numero = Numero Mod 1000000 End If If Numero >= 1000 Then If Numero >= 100000 Then X = X + C(Numero \ 100000) + " " Numero = Numero Mod 100000 End If X = X + U(Numero \ 1000) + " MIL " Numero = Numero Mod 1000 End If If Numero >= 100 Then X = X + C(Numero \ 100) + " " Numero = Numero Mod 100 End If X = X + U(Numero) + " " LETRAS = X End Function