Округление чисел
Объекты Decimal имеют метод quantize(), который позволяет округлять числа. В этот метод в качестве первого аргумента передается также объект Decimal, который указывает формат округления числа:
Используемая строка "1.00" указывает, что округление будет идти до двух знаков в дробной части.
🐍 Укус питона // 💬 Чат // #теория #модули #decimal #quantize
Объекты Decimal имеют метод quantize(), который позволяет округлять числа. В этот метод в качестве первого аргумента передается также объект Decimal, который указывает формат округления числа:
Используемая строка "1.00" указывает, что округление будет идти до двух знаков в дробной части.
🐍 Укус питона // 💬 Чат // #теория #модули #decimal #quantize
Округление чисел. Продолжение.
По умолчанию округление описывается константой ROUND_HALF_EVEN, при котором округление происходит до ближайшего четного числа, если округляемая часть равна 5. Например:
Стратегия округления передается в качестве второго параметра в quantize.
Строка "1.00" означает, что округление будет идти до двух чисел в дробной части. Но в первом случае "10.025" - вторым знаком идет 2 - четное число, поэтому, несмотря на то, что следующее число 5, двойка не округляется до тройки.
Во втором случае "10.035" - вторым знаком идет 3 - нечетное число, ближайшим четным числом будет 4, поэтому 35 округляется до 40.
🐍 Укус питона // 💬 Чат // #теория #модули #decimal #quantize
По умолчанию округление описывается константой ROUND_HALF_EVEN, при котором округление происходит до ближайшего четного числа, если округляемая часть равна 5. Например:
Стратегия округления передается в качестве второго параметра в quantize.
Строка "1.00" означает, что округление будет идти до двух чисел в дробной части. Но в первом случае "10.025" - вторым знаком идет 2 - четное число, поэтому, несмотря на то, что следующее число 5, двойка не округляется до тройки.
Во втором случае "10.035" - вторым знаком идет 3 - нечетное число, ближайшим четным числом будет 4, поэтому 35 округляется до 40.
🐍 Укус питона // 💬 Чат // #теория #модули #decimal #quantize
Округление чисел. Продолжение.
Данное поведение при округлении, возможно, не всем покажется желательным, и в этом случае его можно переопределить, использовав одну из следующих констант:
• ROUND_HALF_UP: округляет число в сторону повышения, если после него идет число 5 или выше
• ROUND_HALF_DOWN: округляет число в сторону повышения, если после него идет число больше 5, смотрим пример:
• ROUND_05UP: округляет 0 до единицы, если после него идет число 5 и выше, второй пример:
• ROUND_CEILING: округляет число в большую сторону вне зависимости от того, какое число идет после него, третий пример:
• ROUND_FLOOR: не округляет число вне зависимости от того, какое число идет после него, последний пример:
🐍 Укус питона // 💬 Чат // #теория #модули #decimal #quantize
Данное поведение при округлении, возможно, не всем покажется желательным, и в этом случае его можно переопределить, использовав одну из следующих констант:
• ROUND_HALF_UP: округляет число в сторону повышения, если после него идет число 5 или выше
• ROUND_HALF_DOWN: округляет число в сторону повышения, если после него идет число больше 5, смотрим пример:
• ROUND_05UP: округляет 0 до единицы, если после него идет число 5 и выше, второй пример:
• ROUND_CEILING: округляет число в большую сторону вне зависимости от того, какое число идет после него, третий пример:
• ROUND_FLOOR: не округляет число вне зависимости от того, какое число идет после него, последний пример:
🐍 Укус питона // 💬 Чат // #теория #модули #decimal #quantize