[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