Я пишу сценарий, который запрашивает у пользователя количество монет разных номиналов, которые они имеют, а затем отображает общую сумму в долларах и центах.Как вернуть правильный округленный ответ в Python?
Когда он отображает доллары, однако, он округляет ответ.
Например, если сумма составляет 82 цента, она заявляет, что у меня есть 1 доллар, в то время как мне нужно сказать 0 долларов.
Я не могу использовать round
функция здесь.
Это даже умная вещь для использования или должна ли я придерживаться функции format
?
def main():
pennies = get_input("Enter pennies : ")
nickels = get_input("Enter nickels : ")
dimes = get_input("Enter dimes : ")
quarters = get_input("Enter quarters : ")
print("You Entered : ")
print("\tPennies : " , pennies)
print("\tNickels : " , nickels)
print("\tDimes : " , dimes)
print("\tQuarters : " , quarters)
total_value = get_total( pennies, nickels, dimes, quarters)
dollars = get_dollars( pennies, nickels, dimes, quarters)
left_over_cents = get_left_over_cents(pennies, nickels, dimes, quarters)
print("Total = $",format(total_value, ".2f"), sep = "")
print("You Have", format(dollars, ".0f"), "dollars and", left_over_cents, "cent(s)")
def get_input(message):
notify = int(input("I don't know"))
while notify >= 0:
return notify
def get_total(pennies, nickels, dimes, quarters):
pennies = .01 * pennies;
nickels = .05 * nickels;
dimes = .10 * dimes;
quarters = .25 * quarters;
total_value = pennies + nickels + dimes + quarters
return total_value
def get_dollars(pennies, nickels, dimes, quarters):
pennies = .01 * pennies;
nickels = .05 * nickels;
dimes = .10 * dimes;
quarters = .25 * quarters;
total_value = pennies + nickels + dimes + quarters
dollars = total_value
return dollars
def get_left_over_cents(pennies, nickels, dimes, quarters):
pennies = .01 * pennies;
nickels = .05 * nickels;
dimes = .10 * dimes;
quarters = .25 * quarters;
total_value = pennies + nickels + dimes + quarters
left_over_cents = total_value
return left_over_cents
main()
Если вы считаете деньги, * никогда * не используйте плавучую точку вообще. Придерживайтесь целых чисел. –
На самом деле, десятичный будет, вероятно, лучшим типом. –
Демонстрировал, как использовать десятичное значение для округления до долларов. –