1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- import unittest
- def numero_to_letras(numero):
- indicador = [("",""),("MIL","MIL"),("MILLON","MILLONES"),("MIL","MIL"),("BILLON","BILLONES")]
- entero = int(numero)
- decimal = int(round((numero - entero)*100))
-
- contador = 0
- numero_letras = ""
- numero_letrasd = ""
- while entero >0:
- a = entero % 1000
- if contador == 0:
- en_letras = convierte_cifra(a,1).strip()
- else :
- en_letras = convierte_cifra(a,0).strip()
- if a==0:
- numero_letras = en_letras+" "+numero_letras
- elif a==1:
- if contador in (1,3):
- numero_letras = indicador[contador][0]+" "+numero_letras
- else:
- numero_letras = en_letras+" "+indicador[contador][0]+" "+numero_letras
- else:
- numero_letras = en_letras+" "+indicador[contador][1]+" "+numero_letras
- numero_letras = numero_letras.strip()
- contador = contador + 1
- entero = int(entero / 1000)
- contadord=0
- while decimal >0:
- d = decimal % 1000
- if contadord == 0:
- en_letrasd = convierte_cifra(d,1).strip()
- numero_letrasd =" COM "+str(en_letrasd.strip())
- contadord = contadord + 1
- decimal = int(decimal / 1000)
- numero_letras = numero_letras+ str(numero_letrasd)
-
-
- return numero_letras
- def convierte_cifra(numero,sw):
- lista_centana = ["",("CIEN","CIENTO"),"DOSCIENTOS","TRESCIENTOS","CUATROCIENTOS","QUINIENTOS","SEISCIENTOS","SETECIENTOS","OCHOCIENTOS","NOVECIENTOS"]
- lista_decena = ["",("DIEZ","ONCE","DOCE","TRECE","CATORCE","QUINCE","DIECISEIS","DIECISIETE","DIECIOCHO","DIECINUEVE"),
- ("VEINTE","VEINTI"),("TREINTA","TREINTA Y "),("CUARENTA" , "CUARENTA Y "),
- ("CINCUENTA" , "CINCUENTA Y "),("SESENTA" , "SESENTA Y "),
- ("SETENTA" , "SETENTA Y "),("OCHENTA" , "OCHENTA Y "),
- ("NOVENTA" , "NOVENTA Y ")
- ]
- lista_unidad = ["",("UN" , "UNO"),"DOS","TRES","CUATRO","CINCO","SEIS","SIETE","OCHO","NUEVE"]
- centena = int (numero / 100)
- decena = int((numero -(centena * 100))/10)
- unidad = int(numero - (centena * 100 + decena * 10))
-
- texto_centena = ""
- texto_decena = ""
- texto_unidad = ""
-
- texto_centena = lista_centana[centena]
- if centena == 1:
- if (decena + unidad)!=0:
- texto_centena = texto_centena[1]
- else :
- texto_centena = texto_centena[0]
-
- texto_decena = lista_decena[decena]
- if decena == 1 :
- texto_decena = texto_decena[unidad]
- elif decena > 1 :
- if unidad != 0 :
- texto_decena = texto_decena[1]
- else:
- texto_decena = texto_decena[0]
-
-
- if decena != 1:
- texto_unidad = lista_unidad[unidad]
- if unidad == 1:
- texto_unidad = texto_unidad[sw]
- return "%s %s %s" %(texto_centena,texto_decena,texto_unidad)
|