Convertir Números a Letras


cambio

Navegando por la pequeña Web, encontré una función muy útil. Escribir un número y esta función convierte lo digitado en letras…

Aquí la función:

 

 

    Public Shared 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
    End Function

    Public Shared 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

    End Function

 

Tienen que hacer Copy-Paste solamente. Ojo que esta solo sirve para valores enteros… si quieren para decimales tienen que agregar un par de cosillas.

2 respuestas a Convertir Números a Letras

  1. box sejour dice:

    May I simply say what a comfort to uncover someone who actually
    understands what they are discussing online. You certainly know how to
    bring an issue to light and make it important.
    More and more people should check this out and understand this side of your story.
    I can’t believe you aren’t more popular given that you definitely have the gift.

  2. This is the perfect site for anyone who really wants to find out about this topic.
    You understand a whole lot its almost hard to argue with you (not that I really will
    need to…HaHa). You definitely put a new spin on a subject which has been discussed for ages.

    Excellent stuff, just excellent!

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: