Enlaces patrocinados:

Trucos de Visual Basic.NET Como convertir números a letras

Como convertir números a letras


He visto muchas veces esta pregunta en los foros, si mal no recuerdo en el año 2000 alguién que no recuerdo su nombre envío el siguiente algoritmo para VB 6.0 para realizar dicha conversión.... ha sido unos de los mejores que he visto.. a continuación se los adjunto, espero que también les puedan servir.

 

Sirve tanto para VB 6.0, como para Visual Basic .NET

 

Public Function Num2Text(ByVal value As Double) As String
    Select Case
value
        Case 0 : Num2Text = "CERO"
        Case 1 : Num2Text = "UN"
        Case 2 : Num2Text = "DOS"
        Case 3 : Num2Text = "TRES"
        Case 4 : Num2Text = "CUATRO"
        Case 5 : Num2Text = "CINCO"
        Case 6 : Num2Text = "SEIS"
        Case 7 : Num2Text = "SIETE"
        Case 8 : Num2Text = "OCHO"
        Case 9 : Num2Text = "NUEVE"
        Case 10 : Num2Text = "DIEZ"
        Case 11 : Num2Text = "ONCE"
        Case 12 : Num2Text = "DOCE"
        Case 13 : Num2Text = "TRECE"
        Case 14 : Num2Text = "CATORCE"
        Case 15 : Num2Text = "QUINCE"
        Case Is <; 20 : Num2Text = "DIECI" & Num2Text(value - 10)
        Case 20 : Num2Text = "VEINTE"
        Case Is <; 30 : Num2Text = "VEINTI" & Num2Text(value - 20)
        Case 30 : Num2Text = "TREINTA"
        Case 40 : Num2Text = "CUARENTA"
        Case 50 : Num2Text = "CINCUENTA"
        Case 60 : Num2Text = "SESENTA"
        Case 70 : Num2Text = "SETENTA"
        Case 80 : Num2Text = "OCHENTA"
        Case 90 : Num2Text = "NOVENTA"
        Case Is <; 100 : Num2Text = Num2Text(Int(value \ 10) * 10) & " Y " & Num2Text(value Mod 10)
        Case 100 : Num2Text = "CIEN"
        Case Is <; 200 : Num2Text = "CIENTO " & Num2Text(value - 100)
        Case 200, 300, 400, 600, 800 : Num2Text = Num2Text(Int(value \ 100)) & "CIENTOS"
        Case 500 : Num2Text = "QUINIENTOS"
        Case 700 : Num2Text = "SETECIENTOS"
        Case 900 : Num2Text = "NOVECIENTOS"
        Case Is <; 1000 : Num2Text = Num2Text(Int(value \ 100) * 100) & " " & Num2Text(value Mod 100)
        Case 1000 : Num2Text = "MIL"
        Case Is <; 2000 : Num2Text = "MIL " & Num2Text(value Mod 1000)
        Case Is <; 1000000 : Num2Text = Num2Text(Int(value \ 1000)) & " MIL"
            If value Mod 1000 Then Num2Text = Num2Text & " " & Num2Text(value Mod 1000)
        Case 1000000 : Num2Text = "UN MILLON"
        Case Is <; 2000000 : Num2Text = "UN MILLON " & Num2Text(value Mod 1000000)
        Case Is <; 1000000000000.0# : Num2Text = Num2Text(Int(value / 1000000)) & " MILLONES "
            If (value - Int(value / 1000000) * 1000000) Then Num2Text = Num2Text & " " & Num2Text(value - Int(value / 1000000) * 1000000)
        Case 1000000000000.0# : Num2Text = "UN BILLON"
        Case Is <; 2000000000000.0# : Num2Text = "UN BILLON " & Num2Text(value - Int(value / 1000000000000.0#) * 1000000000000.0#)
        Case Else : Num2Text = Num2Text(Int(value / 1000000000000.0#)) & " BILLONES"
            If (value - Int(value / 1000000000000.0#) * 1000000000000.0#) Then Num2Text = Num2Text & " " & Num2Text(value - Int(value / 1000000000000.0#) * 1000000000000.0#)
    End Select


Comentarios sobre Como convertir números a letras


Matias Vidoni dice:

Funciona excelente. Muchas gracias!!!
Comentario publicado 02/04/2010 21:50:00

Marcos Alonso dice:

Excelente!... ya imaginaba yo que debia aprovecharse la recursividad, simplemente lo puse y funcionó. muchas felicidades!!
Comentario publicado 06/04/2010 21:24:00

Pamela dice:

Hola donde codifico esto.....
Comentario publicado 13/04/2010 16:55:00

William dice:

hola soi nuevo en esto y no se donde codificar el codigo ??? porque inserte 2 textbox y 1 boton, puse el codigo en el botton y le cambie el nombre a un textbox para q se llamara Num2text. pero ala hora de correr el programa me tira erro en los value y no se porque!! me podrian ayudar ?? se los agradeceria mucho...
Comentario publicado 21/05/2010 21:20:00

lalo dice:

william: en tu visual 6 pega la funcion tal como esta y quitale el punto y coma de las lineas que tienen Case Is <; <-- este pon un textbox llamado text1 y pon otro llamado text2 pon un boton y ponle lo siguiente: Text2 = Num2Text(Text1) ejecuta el programa y escribe por ejemplo 1500 en el text1 y dale al boton, en el text2 te deberia poner MIL QUINIENTOS PESOS
Comentario publicado 29/05/2010 1:27:00

Jose dice:

pero en el visual 2005 cambia no porque el codigo del boton me marca que no es posible utilizar un tipo double o string en system.windows.form
Comentario publicado 29/05/2010 6:18:00

peter dice:

mmmmmm...... y eso incluye tambien para numeros con decimales¿?
Comentario publicado 02/06/2010 2:27:00

Jonathan dice:

Tengo el mismo problema que willian pero para visual basic 2008 (el de visual studio 2008) y pongo lo que dijiste de los nombres de los textbox pero no me sale!!!!!
Comentario publicado 29/06/2010 23:22:00

IngPhoenix dice:

Buen aporte, muchas gracias
Comentario publicado 01/07/2010 7:24:00

victor dice:

trabajo en visual vb asp .net 2005 y no se en que parte agrego el codigo, ya probe de varias opciones me da error pero tampoco me aloja ningun resultado, me urge,, gracias
Comentario publicado 27/07/2010 20:06:00

clipero dice:

chingaderas
Comentario publicado 27/08/2010 20:59:00

Visual 2008 dice:

Ecxelente mil gracias =D lo prove en Visual Basic 2008 y corrio perfecto, con referencia a Jonathan dice: Tengo el mismo problema que willian pero para visual basic 2008 (el de visual studio 2008) y pongo lo que dijiste de los nombres de los textbox pero no me sale!!!!! Comentario publicado 29/06/2010 23:22:00 solo creas una variable de tipo double, asi: Dim Numero As Double text1.Text = Numero text2.Text = Num2Text(Numero) y listo corre perfecto
Comentario publicado 03/09/2010 6:13:00

Manuel dice:

Hola primero que nada agradezco tu aporte, mil gracias actualmente tengo que realizar un servicio web en que realize la conversion de numero a letra, la verdad soy un poco nuevo, me podrias dar alguna orientacion? de como convertir tu codigo a servicio web? Saludos
Comentario publicado 09/09/2010 16:35:00

Cinthya Patiño dice:

es de gran ayuda pero me gustaria por medio de excel una formula porque hay manera de poner de numero a letras nada mas que cuando lo hago se hace en otro lenguaje y no lo puedo cambia me gustaria que me ayudaras lo tomo con texto bach
Comentario publicado 21/09/2010 17:04:00

cristhian dice:

axalaaaaaaaa xux de lujo ahora busken este mismo codigo en el blog de jhonny y busque el codigo para los decimales... esta perfecto de lujooooo blessss
Comentario publicado 03/10/2010 19:57:00

Jesus Enriquez dice:

exelente codigo funciona al 100 % en .net gracias maestro
Comentario publicado 05/10/2010 3:34:00

sandro dice:

muy buebo cracias por el aporte
Comentario publicado 06/10/2010 21:04:00

MAD dice:

MUY BUENO ME SALVO PARA MAÑANA
Comentario publicado 12/10/2010 20:33:00

Carlos Choque dice:

No le entiendo viejo me explicas plis
Comentario publicado 30/10/2010 2:16:00

Moguel dice:

hola intento pasar este codigo a visual asp.net con su propiedad textchange pero no me funciona alguien puede ayudarme, es con la finalidad de verlo en una label u otro textbox. xfis soy nuevo
Comentario publicado 18/11/2010 21:33:00

Jorge Espada dice:

Bueno!, en realidad me pareció que consumiría bastante recurso, pero es aceptable, para incluir los decimales, normalmente en facturación no se tiene que convertir los decimales en letras así que podrían capturar la parte entera para convertir en una variable y la parte decimal a la necesidad (convertir o no) capturarlo y concatenar nada más.. así que no se hagan bolas con los decimales...
Comentario publicado 30/11/2010 17:35:00

none dice:

muy bien, funciona muy facil, solo que son los puntos :P (Y)
Comentario publicado 16/01/2011 23:38:00

Mary dice:

Yesssssssss , lo hice Gracias
Comentario publicado 02/02/2011 2:40:00

edwin dice:

no funciona para decimales donde le aumento, despues esta chido pero no logro que funcione con decimales
Comentario publicado 07/02/2011 17:56:00

wilsson Otazu dice:

Favor alguien me pueda ayudar en esto y me gustaria saber los paso donde debp cargar el codigo para que me funcione GRACIAS
Comentario publicado 05/04/2011 20:42:00

andres dice:

lo copie y me funciona, pero marca un error que debo de importar ADOBD, pero yo utilizo oracle para la conexion a la base de datos, algun apoyo a mi correo gracias
Comentario publicado 11/04/2011 2:01:00

Wilder Ramirez D dice:

Muchas Gracias un excelente aporte ......
Comentario publicado 11/04/2011 19:18:00

luis dice:

gracias me sirve de mucho si tiene un algoritmo que imprima el equivalente de un número entre 1 y 1000 en romano y que vuelva a pedir otro número me lo mostrar por favor gracias
Comentario publicado 25/04/2011 5:11:00

M. Fragoso dice:

Gracias por lo programa como convertir numeros a letras. Tengo tentado hacer con que el program trabaje pero sin resultados positivos. Tenho usado una variedade de sistemas para activar la funcion pero sin resultado. Como soy novato com el VisualBasic 6, no tengo qualquiera duda de que es mio el problema.Puede Usted ayudar-me? Gracias, M. Fragoso mleapfrog@gmail.com Perdon por el myo Castelhano.
Comentario publicado 19/05/2011 6:03:00

Marina dice:

Estoy trabajando con VB 6.0 y no lo puedo hacer funcionar ya probe todo. Porfi que alguien me ayude
Comentario publicado 24/05/2011 17:37:00

www.mistrucos.net dice:

Truco visual basic net como convertir numeros a letras 772.. Outstanding :)
Comentario publicado 05/06/2011 10:53:00

Logan dice:

Mejor copialo de la fuente, porque el que esta aqui esta mal copiado por unos ";" de mas que se le fueron, pero de todas maneras muchas gracias por el aporte....
Comentario publicado 17/06/2011 23:51:00

ronald dice:

gracias por el aporte pero un gran favor como uso el codigo en visual net 2005
Comentario publicado 19/06/2011 5:38:00

ronald dice:

ya encontre la solucion gracias
Comentario publicado 19/06/2011 6:35:00

samir dice:

piola causas me salvaron de mi examen ia k nO nos avian enseñado eso
Comentario publicado 24/06/2011 15:58:00

7k6m sex videos uzlx dice:

Truco visual basic net como convertir numeros a letras 772.. Great idea :)
Comentario publicado 02/07/2011 16:42:00

k75g tits 8h41 dice:

Truco visual basic net como convertir numeros a letras 772.. OMG! :)
Comentario publicado 03/07/2011 5:40:00

LUIS MELENDEZ dice:

cual es el procedimiento para pegar esto no c
Comentario publicado 29/07/2011 23:23:00

Rafael Cadavid dice:

Excelente....muy bueno muchas gracias. Lalo muchas gracias A marina ....haz lo que dice lalo y listo
Comentario publicado 12/08/2011 19:05:00

,sdbjf dice:

cdgasbgfljzjdhv hjasr jkgbfr jke hgjrgjkher fj sdfhwejk
Comentario publicado 18/08/2011 18:02:00

mariaisabel dice:

por favor leanme este numero 4611686018427390000,00
Comentario publicado 02/09/2011 22:53:00

Lupheys dice:

HELLO por k codigo o algo se cambia el num2text????????????????
Comentario publicado 21/09/2011 18:37:00

Cheap software online dice:

t2GAw3 I must admit, the webmaster is a cool guy..!
Comentario publicado 29/09/2011 13:08:00

manuel dice:

el resultado convertido a letra lo quiero mostrar en un label como lo haría. estoy haciendo de esta forma pero me marca error label1.text=Num2Text(value) Espero su respuesta. xf responde, Gracias.
Comentario publicado 26/10/2011 8:45:00

juan dice:

el resultado convertido a letra lo quiero mostrar en un label como lo haría. estoy haciendo de esta forma pero me marca error label1.text=Num2Text(value) Espero su respuesta. xf responde, Gracias. tu respuesta es Label1.Text = Num2Text(Val(TextBox1.Text))
Comentario publicado 15/11/2011 20:25:00

Nelson dice:

Me pareces que deberian esforzarse un poco mas con la logica para aquellos que no entienden la funcion, que requiere esa codificacion, que desde ya es un gran aporte y alli resume un ahorro de tiempo
Comentario publicado 15/12/2011 17:25:00

anonitmo dice:

no tienes una forma mas corta pffff :/
Comentario publicado 21/01/2012 19:04:00
Dejar un comentario

Nombre:

Mail:

Web:

Comentario:

Código de seguridad

Captcha

Inserta el código de seguridad