Convertir Número a Letra del Alfabeto
Necesito recuperar la Letra del Alfabeto correspondiente a un número que se me da.
Ejemplo: Si el número que tengo es el 1, la letra que me debería devolver es la A.
Me han comentado que puede haber alguna función para ello, pero no tengo ni idea de cual hay que aplicar.
Ayuda, please.
Gracias
Ejemplo: Si el número que tengo es el 1, la letra que me debería devolver es la A.
Me han comentado que puede haber alguna función para ello, pero no tengo ni idea de cual hay que aplicar.
Ayuda, please.
Gracias
si te sirve de algo...
Response.Write(chr(65)) da como resultado: A
Response.Write(chr(90)) da como resultado: Z
entonces....
Response.Write(chr(n+64)) da como resultado: la letra corespondiente al numero, si "n" es 1 el resultado es "A"
si quiere ver el resto crea una pagina con esto:
<%@ LANGUAGE="VBScript" %>
<%
For n=0 to 255
Response.Write(n & ": " & Chr(n) & "<BR>")
NEXT
%>
y veras todos los caracteres estos que salen cuando pulsas ATL+numeros que no me acuerdo ni como se llaman.
Response.Write(chr(65)) da como resultado: A
Response.Write(chr(90)) da como resultado: Z
entonces....
Response.Write(chr(n+64)) da como resultado: la letra corespondiente al numero, si "n" es 1 el resultado es "A"
si quiere ver el resto crea una pagina con esto:
<%@ LANGUAGE="VBScript" %>
<%
For n=0 to 255
Response.Write(n & ": " & Chr(n) & "<BR>")
NEXT
%>
y veras todos los caracteres estos que salen cuando pulsas ATL+numeros que no me acuerdo ni como se llaman.
PEGA ESTE TEXTO EN BLOCK DE NOTAS Y GUARDALO COMO ASP CON EL NOMBRE QUE SEA, ALFINAL DE LA HOJA VIENE montoescrito=EnLetras(255001.22) CAMBIALE LA CANTIDAD POR LA QUE TU QUIERAS, YA SEA UNA VARIABLE O UN VALOR FIJO, SUERTE
<%
Function EnLetras(numero)
Dim b, paso
Dim expresion, entero, deci, flag
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
If Len(deci) = 1 Then
deci = deci & "0"
End If
flag = "N"
If int(numero) >= -999999999 And int(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
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
If deci <> "" Then
If Mid(entero, 1, 1) = "-" Then 'si el numero es negativo
EnLetras = "menos " & expresion & " PESOS " & deci ' & ""
Else
EnLetras = expresion & " PESOS " & deci ' & ""
End If
Else
If Mid(entero, 1, 1) = "-" Then 'si el numero es negativo
EnLetras = "menos " & expresion & " PESOS 2"
Else
EnLetras = expresion & " PESOS 00"
End If
End If
Else 'si el numero a convertir esta fuera del rango superior e inferior
EnLetras = ""
End If
End Function
%>
<%
montoescrito=EnLetras(255001.22)
response.write(montoescrito & "/100 MN")
%>
<%
Function EnLetras(numero)
Dim b, paso
Dim expresion, entero, deci, flag
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
If Len(deci) = 1 Then
deci = deci & "0"
End If
flag = "N"
If int(numero) >= -999999999 And int(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
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
If deci <> "" Then
If Mid(entero, 1, 1) = "-" Then 'si el numero es negativo
EnLetras = "menos " & expresion & " PESOS " & deci ' & ""
Else
EnLetras = expresion & " PESOS " & deci ' & ""
End If
Else
If Mid(entero, 1, 1) = "-" Then 'si el numero es negativo
EnLetras = "menos " & expresion & " PESOS 2"
Else
EnLetras = expresion & " PESOS 00"
End If
End If
Else 'si el numero a convertir esta fuera del rango superior e inferior
EnLetras = ""
End If
End Function
%>
<%
montoescrito=EnLetras(255001.22)
response.write(montoescrito & "/100 MN")
%>
al evaluar la cantidad 2,400.00 me devuelve veintimil cuatrocientos ... que pex??? onta el bug