Все,
Я работаю над простой функцией, которая принимает значение и рассчитывает минимальное количество монет для распределения на основе значения.Я использовал 1,20 в качестве моей суммы.Таким образом, я должен вернуть 6 монет - 2 четверти и 2 цента.Для простоты я показываю только четверть кода.Когда я запускаю приведенный ниже пример кода, точность для операции сумма = сумма - четверти является правильной на протяжении первых двух итераций, однако, на третьей, сумма изменяется на 0,44999999999999996.
- 1-я итерация: 0,95
- 2-я итерация: 0,7
- 3-я итерация: 0,44999999999999996
Знаете ли вы, почему это происходит, и как я могу решить эту проблему?Я попытался использовать десятичную. Десятичная и изменение точности.Я не хочу исправлять только форматирование, но хотел бы установить фактическую сумму, поскольку это важно для подсчета количества монет.
#amount for testing
amount = 1.20
#coins
quarter = 0.25
def min_coins(amount):
count_quarter = 0
while amount >= quarter:
amount = amount - quarter
print(amount)
count_quarter += 1
min_coins(amount)