On Sat, 23 Aug 2014 13:47:20 -0400, Seymore4Head <Seymore4Head@Hotmail.invalid> wrote:
>I am trying to do this example: >http://openbookproject.net/pybiblio/practice/wilson/loan.php >The instructions warn that floating point math can get messy so I >cheated a little bit to get me going. > >I made my program work by using numbers that wouldn't get messy. >Instead of using 6% interest I used 10 and instead of using 12 months, >I used 10. > >I managed to get it working and formatted just like they wanted it, >but now I want to try to use any numbers. It has been hard to figure >out which method to use. > >Here is the working program. > >import sys >count = 0 >payment = 0 >borrowed = 100 >rate = 10 >term = 10 >interest=borrowed*rate*.01 #(*1) >balance = borrowed + interest >print ("Loan calculator") >print ("") >print ("Amount borrowed: ", borrowed) >print ("Interest rate: ", rate) >print ("Term: (months)", term) >print ("") >print ("Amount borrowed:" , borrowed) >print ("Total interest paid:" , interest) >print ("") >print ("") >print (" Amount Remaining") >print ("Pymt# Paid Balance") >print ("----- ------ ----------") >while count <=term: > > > print (repr(count).rjust(3), repr(payment).rjust(13), >repr(balance).rjust(14)) > > > payment = (borrowed + interest)/term > balance = balance - payment > count = count + 1 > >What should I use to make the formatting come out correctly when the >program prints "payment" and "balance" using decimal format? > >If you change the "rate" from 10 to 6 and the "term" from 10 to 12, >the screen gets very messy. > >Anyone care to suggest what method to use to fix the decimal format? OK I found the answer to my own question after getting search tips here. I found this function that I will be saving for later. def make_it_money(number): import math return '$' + str(format(math.floor(number * 100) / 100, ',.2f')) (I still need more practice to find out how it does what it does, but I like the end result) So I changed the line in question to: print (repr(count).rjust(3), make_it_money(payment).rjust(13), make_it_money(balance).rjust(14)) So......now changing the rate from 10 to 6 and the term from 10 to 12 works fine. I would still like to see other solutions if anyone wants to offer. Thanks everyone -- https://mail.python.org/mailman/listinfo/python-list