[Tutor] dollarize.py

Christopher Spears cspears2002 at yahoo.com
Sat Jun 21 02:44:15 CEST 2008


I'm working on an exercise from Core Python Programming.  I need to create a function that takes a float value and returns the value as string rounded to obtain a financial amount.  Basically, the function does this:

dollarize(1234567.8901) returns-> $1,234,567,89

The function should allow for dollar signs, negative signs, and commas.  This is what I have so far:

def dollarize(amount):
    negative_sign = 0
    if amount[0] == '$':
        amount = amount[1:]
    elif amount[0] == '-':
        negative_sign = 1
        if amount[1] == '$':
            amount = amount[2:]
	else:
	    amount = amount[1:]
    else:
        pass
    amount_list = amount.split(",")
    final_amount = ""
    for x in range(len(amount_list)):
        final_amount = final_amount + amount_list[x]
    dollar_float = float(final_amount)
    dollar_rounded = round(dollar_float,2)
    if negative_sign == 1:
        dollar_string = "-$%.2f" % dollar_rounded
    else:
        dollar_string = "$%.2f" % dollar_rounded
    return dollar_string
    
    
amount = raw_input("Enter an amount: ")
dollar_amount = dollarize(amount)
print dollar_amount   

I strip off the symbols, break the string apart, convert it to a float, and then round it.  I'm not sure how to add the commas back after the string has been converted to a rounded float value.  Any hints?


      


More information about the Tutor mailing list