Я пытаюсь собрать числовое количество из пользовательского ввода, преобразовать его в float, добавить запятые в float и затем преобразовать его в строку снова, чтобы я мог распечатать его с помощью Python.Неподдерживаемые типы операндов, запятые с поплавками
Вот мой код:
usr_name = raw_input("- Please enter your name: ")
cash_amt = raw_input("- " + usr_name +", please enter the amount of money to be discounted: $")
discount_rate = raw_input("- Please enter the desired discount rate: ")
num_years = raw_input("- Please enter the number of years to discount: ")
npv = 0.0
usr_name = str(usr_name)
cash_amt = float(cash_amt)
cash_amt = round(cash_amt, 2)
cash_amt = "{:,}".format(cash_amt)
discount_rate = float(discount_rate)
num_years = float(num_years)
npv = float(npv)
discount_rate = (1 + discount_rate)**num_years
npv = round((cash_amt/discount_rate), 2)
npv = "{:,}".format(npv)
print "\n" + usr_name + ", $" + str(cash_amt) + " dollars " + str(num_years) + " years from now
at adiscount rate of " + str(discount_rate) + " has a net present value of $" + str(npv)
Я получаю "неподдерживаемый тип операнда" привязанную к "NPV = круглый ((cash_amt/discount_rate), 2)", когда я пытаюсь запустить его. Должен ли я конвертировать cash_amt обратно в float после добавления запятых? Благодаря!
Какова точная ошибка в трассировке? –
Я обновил свой вопрос, чтобы показать точную ошибку. Ура! –
переместите 'cash_amt =" {:,} ". Format (cash_amt)' непосредственно перед вашим заявлением на печать, но на самом деле вам нужно просто отформатировать его внутри вашего оператора печати, вы также меняете 'npv' на float и не используете его как вы переназначите его на 'round ((cash_amt/discount_rate), 2)' –