Fix floating-point issue on bills (Fix #31)
This commit is contained in:
parent
444d6ded28
commit
74e2168529
2 changed files with 8 additions and 1 deletions
|
|
@ -494,6 +494,10 @@ class BillRecord():
|
|||
else:
|
||||
self.one_time_price = 0
|
||||
|
||||
# Set decimal context for amount computations.
|
||||
# XXX: understand why we need +1 here.
|
||||
decimal.getcontext().prec = AMOUNT_DECIMALS + 1
|
||||
|
||||
@property
|
||||
def recurring_count(self):
|
||||
# Compute billing delta.
|
||||
|
|
@ -531,7 +535,7 @@ class BillRecord():
|
|||
(_, days_in_month) = monthrange(
|
||||
self.bill.starting_date.year,
|
||||
self.bill.starting_date.month)
|
||||
return days / days_in_month
|
||||
return round(days / days_in_month, AMOUNT_DECIMALS)
|
||||
elif self.recurring_period == RecurringPeriod.PER_WEEK:
|
||||
weeks = ceil(billed_delta / timedelta(week=1))
|
||||
return weeks
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue