diff --git a/amort.py b/amort.py index b0553ec..456db38 100644 --- a/amort.py +++ b/amort.py @@ -7,6 +7,7 @@ def generate_amortization_schedule(principal, interest_rate, loan_term, one_time # Calculate the fixed monthly payment using the amortization formula monthly_payment = (principal * monthly_interest_rate) / (1 - (1 + monthly_interest_rate) ** -num_payments) + monthly_payment = round(monthly_payment, 2) # Initialize variables remaining_balance = principal @@ -14,10 +15,10 @@ def generate_amortization_schedule(principal, interest_rate, loan_term, one_time for payment_number in range(1, num_payments + 1): # Calculate interest for the current period - interest_payment = remaining_balance * monthly_interest_rate + interest_payment = round(remaining_balance * monthly_interest_rate, 2) # Calculate principal payment - principal_payment = monthly_payment - interest_payment + principal_payment = round(monthly_payment - interest_payment, 2) # Apply one-time payment if provided if one_time_payment and payment_number == one_time_payment['payment_number']: @@ -32,25 +33,28 @@ def generate_amortization_schedule(principal, interest_rate, loan_term, one_time 'Payment Number': payment_number, 'Payment Amount': monthly_payment, 'Interest Payment': interest_payment, - 'Principal Payment': principal_payment, - 'Remaining Balance': remaining_balance + 'Principal Payment': round(principal_payment,2), + 'Remaining Balance': round(remaining_balance,2) } amortization_schedule.append(payment_details) return amortization_schedule -# Example usage -principal = 100000 -interest_rate = 5.0 -loan_term = 30 +if __name__ == "__main__": + # Example usage + principal = 100000 + interest_rate = 5.0 + loan_term = 3 -one_time_payment = { - 'payment_number': 13, - 'amount': 5000 -} + one_time_payment = { + 'payment_number': 13, + 'amount': 5000 + } -schedule = generate_amortization_schedule(principal, interest_rate, loan_term, one_time_payment) + schedule = generate_amortization_schedule(principal, interest_rate, loan_term, one_time_payment) -# Display the amortization schedule -for payment in schedule: - print(payment) + # Display the amortization schedule + for payment in schedule: + # print(payment) + attrs = [payment[key] for key in payment] + print(attrs)