Skip to content

Instantly share code, notes, and snippets.

@zokis
Last active August 29, 2015 14:23
Show Gist options
  • Save zokis/b9379b8d42f139ae9ffb to your computer and use it in GitHub Desktop.
Save zokis/b9379b8d42f139ae9ffb to your computer and use it in GitHub Desktop.
calcula parcelas
from decimal import Decimal
from math import floor
def parcelas(valor, n, div=False, primeira=False):
formato = Decimal('0.00')
valor = Decimal(valor)
if div:
parcela = Decimal(floor(valor * 100 / n) / 100).quantize(formato)
else:
parcela = Decimal(floor(valor / n)).quantize(formato)
if parcela * n < valor:
parcelas = [parcela] * (n - 1)
parcelas.append((valor - sum(parcelas)).quantize(formato))
if primeira:
parcelas[0], parcelas[-1] = parcelas[-1], parcelas[0]
else:
parcelas = [parcela] * n
return parcelas
for n in xrange(2, 26):
valor = Decimal('15.00')
for sv in xrange(0, 1101):
for div in [True, False]:
ps = parcelas(valor, n, div)
if sum(ps) != valor:
raise Exception('Erro: sum(%s) != %s' % (ps, valor))
valor += Decimal('0.03')
print n,
@zokis
Copy link
Author

zokis commented Jun 30, 2015

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment