def numero_a_letras(d,moneda=False): """ Modificación realizada por jrocamonde para que permita decimales, el programa original number_to_letter.to_word no lo permitía. """ from number_to_letter import to_word try: numero=punto_fijo(d) except: raise ValueError("%s no es un numero válido" % d) p_entera=int(numero) p_decimal=int(str(numero % 1).replace('0.','')) num_entero=to_word(p_entera).strip() if p_entera <> 0 else 'Cero' num_decimal=to_word(p_decimal).strip() if p_decimal <> 0 else None v={'num_entero':num_entero, 'num_decimal':num_decimal} v['moneda']='Euro' if p_entera==1 else 'Euros' v['centimo']='Céntimo' if p_decimal==1 else 'Céntimos' if moneda: if num_decimal: resultado="%(num_entero)s %(moneda)s con %(num_decimal)s %(centimo)s" else: resultado="%(num_entero)s %(moneda)s" else: if num_decimal: resultado="%(num_entero)s con %(num_decimal)s" else: resultado="%(num_entero)s" return resultado % v
def test_to_word(self): cont_msg = 0 for country in self.list_countries: self.assertEqual(number_to_letter.to_word(self.list_number[0], country), self.list_messages[cont_msg]) cont_msg += 1 cont_msg = 0 cont_num = 1 for country in self.list_countries: self.assertEqual( number_to_letter.to_word(self.list_number[cont_num], country), self.list_messages2[cont_msg] ) cont_msg += 1 cont_num += 1
def test_to_word(self): cont_msg = 0 for country in self.list_countries: self.assertEqual( number_to_letter.to_word(self.list_number[0], country), self.list_messages[cont_msg]) cont_msg += 1 cont_msg = 0 cont_num = 1 for country in self.list_countries: self.assertEqual( number_to_letter.to_word(self.list_number[cont_num], country), self.list_messages2[cont_msg]) cont_msg += 1 cont_num += 1
def test_to_word(self): self.assertEqual( number_to_letter.to_word(self.number1), "Cien Pesos" ) self.assertEqual( number_to_letter.to_word(self.number2), "Dos Mil Pesos" ) self.assertEqual( number_to_letter.to_word(self.number3), "Trescientos Mil Pesos" ) self.assertEqual( number_to_letter.to_word(self.number4), "Cuatro Millones Pesos" ) self.assertEqual( number_to_letter.to_word(self.number5), "Quinientos Millones Pesos" ) self.assertEqual( number_to_letter.to_word(self.number6), "No es posible convertir el numero a letras" )
def _amount_to_words(self): self.dsn_amount_in_words = number_to_letter.to_word(self.total, 'EUR')