Foros del Web » Programación para mayores de 30 ;) » .NET »

convertir numeros a texto

Estas en el tema de convertir numeros a texto en el foro de .NET en Foros del Web. Hola quisiera saber si alguien pudiera ayudarme miren quisiera convertir un numero en moneda rn visual basic .net, como si se tratara de una factura, ...
  #1 (permalink)  
Antiguo 10/01/2005, 05:23
 
Fecha de Ingreso: diciembre-2004
Mensajes: 34
Antigüedad: 19 años, 4 meses
Puntos: 0
convertir numeros a texto

Hola quisiera saber si alguien pudiera ayudarme miren quisiera convertir un numero en moneda rn visual basic .net, como si se tratara de una factura, por ejemplo: si yo escribo el numero 185 que automaticamente me devuelva el texto Ciento ochenta y cinco o algo asi.

Si saben de alguna funcion q me pueda servir estare esperando con gusto
gracias

salu2
  #2 (permalink)  
Antiguo 10/01/2005, 07:56
Avatar de sindestino  
Fecha de Ingreso: noviembre-2003
Ubicación: xxxx xxxx
Mensajes: 270
Antigüedad: 20 años, 6 meses
Puntos: 0
he visto muchas funciones escritas en Visual Basic (sobre todo 6) que hacen eso que pedís y en castellano. Yo no tengo un link exacto pero con una simple consulta en google podés encontrar muchas cosas, por ej.: http://vbasic.astalaweb.com/Converti...a%20letras.asp

Saludos
  #3 (permalink)  
Antiguo 10/01/2005, 09:38
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
Está en Visual Basic 6, pero bueno, más o menos, es lo mismo.

Cita:
Public Function EnLetras(numero As String) As String

Dim b, paso As Integer

Dim expresion, entero, deci, flag As String



flag = "N"

For paso = 1 To Len(numero)

If Mid(numero, paso, 1) = "." Then

flag = "S"

Else

If flag = "N" Then

entero = entero + Mid(numero, paso, 1) 'Extae la parte entera del numero

Else

deci = deci + Mid(numero, paso, 1) 'Extrae la parte decimal del numero

End If

End If

Next paso



If Len(deci) = 1 Then

deci = deci & "0"

End If



flag = "N"

If Val(numero) >= -999999999 And Val(numero) <= 999999999 Then 'si el numero esta dentro de 0 a 999.999.999

For paso = Len(entero) To 1 Step -1

b = Len(entero) - (paso - 1)

Select Case paso

Case 3, 6, 9

Select Case Mid(entero, b, 1)

Case "1"

If Mid(entero, b + 1, 1) = "0" And Mid(entero, b + 2, 1) = "0" Then

expresion = expresion & "cien "

Else

expresion = expresion & "ciento "

End If

Case "2"

expresion = expresion & "doscientos "

Case "3"

expresion = expresion & "trescientos "

Case "4"

expresion = expresion & "cuatrocientos "

Case "5"

expresion = expresion & "quinientos "

Case "6"

expresion = expresion & "seiscientos "

Case "7"

expresion = expresion & "setecientos "

Case "8"

expresion = expresion & "ochocientos "

Case "9"

expresion = expresion & "novecientos "

End Select



Case 2, 5, 8

Select Case Mid(entero, b, 1)

Case "1"

If Mid(entero, b + 1, 1) = "0" Then

flag = "S"

expresion = expresion & "diez "

End If

If Mid(entero, b + 1, 1) = "1" Then

flag = "S"

expresion = expresion & "once "

End If

If Mid(entero, b + 1, 1) = "2" Then

flag = "S"

expresion = expresion & "doce "

End If

If Mid(entero, b + 1, 1) = "3" Then

flag = "S"

expresion = expresion & "trece "

End If

If Mid(entero, b + 1, 1) = "4" Then

flag = "S"

expresion = expresion & "catorce "

End If

If Mid(entero, b + 1, 1) = "5" Then

flag = "S"

expresion = expresion & "quince "

End If

If Mid(entero, b + 1, 1) > "5" Then

flag = "N"

expresion = expresion & "dieci"

End If



Case "2"

If Mid(entero, b + 1, 1) = "0" Then

expresion = expresion & "veinte "

flag = "S"

Else

expresion = expresion & "veinti"

flag = "N"

End If



Case "3"

If Mid(entero, b + 1, 1) = "0" Then

expresion = expresion & "treinta "

flag = "S"

Else

expresion = expresion & "treinta y "

flag = "N"

End If



Case "4"

If Mid(entero, b + 1, 1) = "0" Then

expresion = expresion & "cuarenta "

flag = "S"

Else

expresion = expresion & "cuarenta y "

flag = "N"

End If



Case "5"

If Mid(entero, b + 1, 1) = "0" Then

expresion = expresion & "cincuenta "

flag = "S"

Else

expresion = expresion & "cincuenta y "

flag = "N"

End If



Case "6"

If Mid(entero, b + 1, 1) = "0" Then

expresion = expresion & "sesenta "

flag = "S"

Else

expresion = expresion & "sesenta y "

flag = "N"

End If



Case "7"

If Mid(entero, b + 1, 1) = "0" Then

expresion = expresion & "setenta "

flag = "S"

Else

expresion = expresion & "setenta y "

flag = "N"

End If



Case "8"

If Mid(entero, b + 1, 1) = "0" Then

expresion = expresion & "ochenta "

flag = "S"

Else

expresion = expresion & "ochenta y "

flag = "N"

End If



Case "9"

If Mid(entero, b + 1, 1) = "0" Then

expresion = expresion & "noventa "

flag = "S"

Else

expresion = expresion & "noventa y "

flag = "N"

End If

End Select
  #4 (permalink)  
Antiguo 10/01/2005, 09:39
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
CONTINÚA..


Cita:
Case 1, 4, 7

Select Case Mid(entero, b, 1)

Case "1"

If flag = "N" Then

If paso = 1 Then

expresion = expresion & "uno "

Else

expresion = expresion & "un "

End If

End If

Case "2"

If flag = "N" Then

expresion = expresion & "dos "

End If

Case "3"

If flag = "N" Then

expresion = expresion & "tres "

End If

Case "4"

If flag = "N" Then

expresion = expresion & "cuatro "

End If

Case "5"

If flag = "N" Then

expresion = expresion & "cinco "

End If

Case "6"

If flag = "N" Then

expresion = expresion & "seis "

End If

Case "7"

If flag = "N" Then

expresion = expresion & "siete "

End If

Case "8"

If flag = "N" Then

expresion = expresion & "ocho "

End If

Case "9"

If flag = "N" Then

expresion = expresion & "nueve "

End If

End Select

End Select

If paso = 4 Then

If Mid(entero, 6, 1) <> "0" Or Mid(entero, 5, 1) <> "0" Or Mid(entero, 4, 1) <> "0" Or _

(Mid(entero, 6, 1) = "0" And Mid(entero, 5, 1) = "0" And Mid(entero, 4, 1) = "0" And _

Len(entero) <= 6) Then

expresion = expresion & "mil "

End If

End If

If paso = 7 Then

If Len(entero) = 7 And Mid(entero, 1, 1) = "1" Then

expresion = expresion & "millón "

Else

expresion = expresion & "millones "

End If

End If

Next paso



If deci <> "" Then

If Mid(entero, 1, 1) = "-" Then 'si el numero es negativo

EnLetras = "menos " & expresion & "con " & deci ' & "/100"

Else

EnLetras = expresion & "con " & deci ' & "/100"

End If

Else

If Mid(entero, 1, 1) = "-" Then 'si el numero es negativo

EnLetras = "menos " & expresion

Else

EnLetras = expresion

End If

End If

Else 'si el numero a convertir esta fuera del rango superior e inferior

EnLetras = ""

End If

End Function
  #5 (permalink)  
Antiguo 11/01/2005, 01:34
 
Fecha de Ingreso: diciembre-2004
Mensajes: 34
Antigüedad: 19 años, 4 meses
Puntos: 0
gracias freegirl si funciono, por cierto por q el nick???
  #6 (permalink)  
Antiguo 11/01/2005, 05:25
Avatar de Bravenap  
Fecha de Ingreso: noviembre-2002
Ubicación: Los Arroyos, El Escorial, Madrid
Mensajes: 2.084
Antigüedad: 21 años, 5 meses
Puntos: 4
Ay, ay, ay, que me parece que gama_jack te va a proponer algo indecente,
__________________
¡¡NO A LA GUERRA!!
Si ponemos a nuestros mensajes títulos adecuados, la gente se animará más a abrirlos y resultarán más útiles en las busquedas. ¡No a los ayuuudaaa, urgenteee y similares!
  #7 (permalink)  
Antiguo 11/01/2005, 05:32
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 20 años, 7 meses
Puntos: 156
como sois!

Pues lo de freegirl no tiene mucho secreto jejej......lo de free porque me gusta la libertad, y lo de girl, pues porque soy una girl
  #8 (permalink)  
Antiguo 16/02/2005, 15:24
 
Fecha de Ingreso: diciembre-2004
Mensajes: 34
Antigüedad: 19 años, 4 meses
Puntos: 0
mmm valla tal vez algun dia me aceptes una invitacion a salir como ves???
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:46.