Escribir en letras un número
Visual Basic.NET
2.356 visualizaciones desde el 21 de Abril del 2020
Escribir en letras un número dado. Es un procedimiento en Visual Basic .NET que se le ingresa un numero y luego da el resultado escrito en letras.
















Public Sub subValorTotalLetras(ByRef TotalNeto As Single, ByRef NumeroEscrito As String)
Dim TresNumeros As String
Dim MasTresNumeros As Boolean
Dim Terminacion As Boolean
Try
' Inicializar variablesNumeroEscrito = ""
' Escribir el valor total en letras menor a un millonSelect Case Len(VB.Right(Str(Fix(TotalNeto)), Len(Str(Fix(TotalNeto))) - 1))
Case Is <= 3
TresNumeros = New String("0", 3 - Len(VB.Right(Str(Fix(TotalNeto)), Len(Str(Fix(TotalNeto))) - 1))) & VB.Right(Str(Fix(TotalNeto)), Len(Str(Fix(TotalNeto))) - 1)
Case Is > 3TresNumeros = VB.Left(New String("0", 6 - Len(Trim(Str(Fix(TotalNeto))))) & Trim(Str(Fix(TotalNeto))), 3)
MasTresNumeros = TrueEnd Select
Do
System.Windows.Forms.Application.DoEvents()
Select Case VB.Left(TresNumeros, 1)
Case "1"If Mid(TresNumeros, 2, 1) = "0" And VB.Right(TresNumeros, 1) = "0" Then
NumeroEscrito = NumeroEscrito & "cien "
Else
NumeroEscrito = NumeroEscrito & "ciento "
End If
Case "2"NumeroEscrito = NumeroEscrito & "doscientos "
Case "3"NumeroEscrito = NumeroEscrito & "trescientos "
Case "4"NumeroEscrito = NumeroEscrito & "cuatrocientos "
Case "5"NumeroEscrito = NumeroEscrito & "quinientos "
Case "6"NumeroEscrito = NumeroEscrito & "seiscientos "
Case "7"NumeroEscrito = NumeroEscrito & "setecientos "
Case "8"NumeroEscrito = NumeroEscrito & "ochocientos "
Case "9"NumeroEscrito = NumeroEscrito & "novecientos "
End Select
Select Case Mid(TresNumeros, 2, 1)
Case "1"Select Case VB.Right(TresNumeros, 1)
Case "0"NumeroEscrito = NumeroEscrito & "diez "
Case "1"NumeroEscrito = NumeroEscrito & "once "
Case "2"NumeroEscrito = NumeroEscrito & "doce "
Case "3"NumeroEscrito = NumeroEscrito & "trece "
Case "4"NumeroEscrito = NumeroEscrito & "catorse "
Case "5"NumeroEscrito = NumeroEscrito & "quince "
Case "6"NumeroEscrito = NumeroEscrito & "dieciséis "
Case "7"NumeroEscrito = NumeroEscrito & "diecisiete "
Case "8"NumeroEscrito = NumeroEscrito & "dieciocho "
Case "9"NumeroEscrito = NumeroEscrito & "diecinueve "
End Select
Terminacion = True Case "2"NumeroEscrito = NumeroEscrito & "veinte "
Case "3"NumeroEscrito = NumeroEscrito & "treinta "
Case "4"NumeroEscrito = NumeroEscrito & "cuarenta "
Case "5"NumeroEscrito = NumeroEscrito & "cincuenta "
Case "6"NumeroEscrito = NumeroEscrito & "sesenta "
Case "7"NumeroEscrito = NumeroEscrito & "setenta "
Case "8"NumeroEscrito = NumeroEscrito & "ochenta "
Case "9"NumeroEscrito = NumeroEscrito & "noventa "
End Select
If VB.Right(TresNumeros, 1) <> "0" And Mid(TresNumeros, 2, 1) <> "0" And Terminacion = False Then
NumeroEscrito = NumeroEscrito & "y "
End If
If Terminacion = False ThenSelect Case VB.Right(TresNumeros, 1)
Case "1" If MasTresNumeros = True ThenNumeroEscrito = NumeroEscrito & "un "
Else
NumeroEscrito = NumeroEscrito & "uno "
End If
Case "2"NumeroEscrito = NumeroEscrito & "dos "
Case "3"NumeroEscrito = NumeroEscrito & "tres "
Case "4"NumeroEscrito = NumeroEscrito & "cuatro "
Case "5"NumeroEscrito = NumeroEscrito & "cinco "
Case "6"NumeroEscrito = NumeroEscrito & "seis "
Case "7"NumeroEscrito = NumeroEscrito & "siete "
Case "8"NumeroEscrito = NumeroEscrito & "ocho "
Case "9"NumeroEscrito = NumeroEscrito & "nueve "
End Select
Else
Terminacion = FalseEnd If
If MasTresNumeros = True ThenTresNumeros = VB.Right(Str(Fix(TotalNeto)), 3)
NumeroEscrito = NumeroEscrito & "mil "
MasTresNumeros = FalseElse
Exit Do
End If
Loop
If InStr(Str(TotalNeto), ".") <> 0 Then
NumeroEscrito = NumeroEscrito & "con " & VB.Right(Str(CInt(TotalNeto * 100)), 2) & "/100"
End If
Catch ex As Exception
MsgBox(Err.Description, MsgBoxStyle.Critical)
End Try
End Sub
Comentarios sobre la versión: 2010 (0)
No hay comentarios