# -*- coding: utf-8 -*- 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)) #print 'decimal : ',decimal 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) # print 'numero: ',numero # print numero_letras 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)) #print "centena: ",centena, "decena: ",decena,'unidad: ',unidad texto_centena = "" texto_decena = "" texto_unidad = "" #Validad las centenas texto_centena = lista_centana[centena] if centena == 1: if (decena + unidad)!=0: texto_centena = texto_centena[1] else : texto_centena = texto_centena[0] #Valida las decenas 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] #Validar las unidades #print "texto_unidad: ",texto_unidad 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)