Convertir número a letras
Publicado por Convertir letras a números (1 intervención) el 05/11/2022 21:27:59
Alguien que me ayude encontrando como solucionar el error, resulta que si escribo 7,01 igual me sigue convirtiendo en letras de esta forma "siete coma uno", cuando debería ser "siete coma cero uno"
Function Letras(x)
Nu = Array("cero", "uno", "dos", "tres", "cuatro", "cinco", _
"seis", "siete", "ocho", "nueve", "diez", "once", "doce", _
"trece", "catorce", "quince", "dieciseis", "diecisiete", _
"dieciocho", "diecinueve", "veinte", "veintiuno", "veintidos", _
"veintitres", "veinticuatro", "veinticinco", "veintiseis", _
"veintisiete", "veintiocho", "veintinueve")
Nd = Array("", "", "", "treinta", "cuarenta", "cincuenta", _
"sesenta", "setenta", "ochenta", "noventa")
Nc = Array("", "ciento", "doscientos", "trescientos", "cuatrocientos", _
"quinientos", "seiscientos", "setecientos", "ochocientos", "novecientos")
u = x Mod 10
d = Int(x / 10) Mod 10
c = Int(x / 100)
If d > 2 Then
Letras = Nd(d) + " y " + Nu(u)
Else
u = d * 10 + u
Letras = Nu(u)
End If
If u = 0 Then Letras = Nd(d)
If c > 0 Then Letras = Nc(c) + " " + Letras
If x = 100 Then Letras = "cien"
End Function
Function Enletras(x)
centavos = Int(x * 100) Mod 100
x = Int(x)
grupo1 = x Mod 1000
grupo2 = Int(x / 1000) Mod 1000
grupo3 = Int(x / 1000000)
n = Letras(grupo3)
If Right(n, 3) = "uno" Then
Enletras = Left(n, Len(n) - 1) + " millones "
Else
If grupo3 > 0 Then Enletras = n + " millones "
End If
If grupo3 = 1 Then Enletras = "un millón "
n = Letras(grupo2)
If Right(n, 3) = "uno" Then
Enletras = Enletras + Left(n, Len(n) - 1) + " mil "
Else
If grupo2 > 0 Then Enletras = Enletras + n + " mil "
End If
If grupo1 > 0 Then Enletras = Enletras + Letras(grupo1)
If centavos > 0 Then Enletras = Enletras + " coma "
End Function
Function Letras(x)
Nu = Array("cero", "uno", "dos", "tres", "cuatro", "cinco", _
"seis", "siete", "ocho", "nueve", "diez", "once", "doce", _
"trece", "catorce", "quince", "dieciseis", "diecisiete", _
"dieciocho", "diecinueve", "veinte", "veintiuno", "veintidos", _
"veintitres", "veinticuatro", "veinticinco", "veintiseis", _
"veintisiete", "veintiocho", "veintinueve")
Nd = Array("", "", "", "treinta", "cuarenta", "cincuenta", _
"sesenta", "setenta", "ochenta", "noventa")
Nc = Array("", "ciento", "doscientos", "trescientos", "cuatrocientos", _
"quinientos", "seiscientos", "setecientos", "ochocientos", "novecientos")
u = x Mod 10
d = Int(x / 10) Mod 10
c = Int(x / 100)
If d > 2 Then
Letras = Nd(d) + " y " + Nu(u)
Else
u = d * 10 + u
Letras = Nu(u)
End If
If u = 0 Then Letras = Nd(d)
If c > 0 Then Letras = Nc(c) + " " + Letras
If x = 100 Then Letras = "cien"
End Function
Function Enletras(x)
centavos = Int(x * 100) Mod 100
x = Int(x)
grupo1 = x Mod 1000
grupo2 = Int(x / 1000) Mod 1000
grupo3 = Int(x / 1000000)
n = Letras(grupo3)
If Right(n, 3) = "uno" Then
Enletras = Left(n, Len(n) - 1) + " millones "
Else
If grupo3 > 0 Then Enletras = n + " millones "
End If
If grupo3 = 1 Then Enletras = "un millón "
n = Letras(grupo2)
If Right(n, 3) = "uno" Then
Enletras = Enletras + Left(n, Len(n) - 1) + " mil "
Else
If grupo2 > 0 Then Enletras = Enletras + n + " mil "
End If
If grupo1 > 0 Then Enletras = Enletras + Letras(grupo1)
If centavos > 0 Then Enletras = Enletras + " coma "
End Function
Valora esta pregunta


0