Вы не добавили языковой тег в свой вопрос, но, судя по синтаксису, я предполагаю, что это Python.
Во-первых, обратите внимание, что 1563.7383 не может быть int
, но может быть float
.
Ваша проблема в использовании "%.4f" % total
, который преобразует total
в строку с 4 десятичными знаками.
Вы, вероятно, должны просто возвращать total
в своей функции (т. Е. Обрабатывать ее как float
, без округления, во всей вашей программе). Округляйте его, используя "%.4f" % total
, только когда вы выводите значение.
В качестве альтернативы, если вам абсолютно необходимо округлить значение в вашей функции и иметь его как float
, рассмотрите возможность использования встроенной функции round()
. Ваше использование будет тогда return round(total, 4)