Я удивлен вторым номером вы упоминаете (и подтверждаете свое запрошенное округление) - сначала я думал, что мой инстинкт умственной арифметики начал меня терпеть (I am все-таки стареет, так что это может происходить так же, как моя некогда резкая память! -) ... но потом я подтвердил, что пока не использовал, как я себе представляю, Python 3.1, и копирование и вставка ..:
>>> def input_meal():
... mealPrice = input('Enter the meal subtotal: $')
... mealPrice = float (mealPrice)
... return mealPrice
...
>>> def calc_tax(mealPrice):
... tax = mealPrice*.06
... return tax
...
>>> m = input_meal()
Enter the meal subtotal: $34.45
>>> print(calc_tax(m))
2.067
>>>
... как и ожидалось - все же, вы говорите, что вместо «возвращает отображение $ 2,607» ... что может быть опечатка, просто поменяв две цифры, за исключением что вы затем спросите: «Как я могу установить это вместо $ 2,61?» поэтому действительно кажется, что вы действительно имеете в виду 2.607
(который может быть закруглен до 2,61 различными способами) и определенно не арифметически правильный результат, 2.067
(который в лучшем случае может быть округлен до 2.07 ... определенно не до 2,61 по вашему запросу) ,
Я предполагаю, что сначала у вас была опечатка в транскрипции, а затем мысленно вычислила желаемое округление от фальсифицированной опечатки 2.607
, а не фактический исходный результат - это то, что произошло? ! Это точно удалось запутать меня на некоторое время -)
Во всяком случае, округлить поплавок до двух знаков после запятой, простой подходом является встроенной функцией round со вторым аргументом 2
:
>>> round(2.067, 2)
2.07
>>> round(2.607, 2)
2.61
для чисел в точности на равном расстоянии между двумя возможностями, она округляет к еще:
>>> round(2.605, 2)
2.6
>>> round(2.615, 2)
2.62
или, как поместить его документы (иллюстрирующий с одним аргументом формой round
, который округляется к ближайшему в Тегер):
если два кратных одинаково близки, округление производится в сторону даже выбора (так, например, как круглые (0,5) и круглые (-0,5) равны 0, и круглая (1.5) равно 2).
Однако для вычислений на деньги, я второй рекомендации, уже даны в других ответах, чтобы придерживаться с тем, что decimal модуль предлагает вместо float
чисел.
Janet, FYI, вам нужна пустая строка перед вашими разделами кода. Или просто выделите их и нажмите кнопку «1010». (На этот раз я исправил отступы для вас) – Stephen