RuntimeError: Цикл обработки событий закрыт Задача была уничтожена, но она ожидает Discord Python

Я удивлен вторым номером, который вы упомянули (и подтвердите по вашему запрошенному округлению) - сначала я думал, что мой инстинкт умственной арифметики начал меня терзать (я 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) и round (-0.5) равны 0, а раунд (1.5) равен 2).

Однако, для расчетов по деньгам, вторые рекомендации, уже приведенные в других ответах, придерживаться того, что предлагает десятичный модуль вместо float номеров.

0
задан Patrick Haugh 18 March 2019 в 23:31
поделиться