Найти в Дзене
postHack

Основы Python #16. Decimal.

И так, вот и подошел конец циклу статей основы python , сегодня выходит последняя статья из этого цикла. И сегодня мы разбираем модуль decimal .
Для чего он вообще нужен? Дело в том, что python по умолчанию плохо работает с данными типа float , например:
Пример ошибки.
И так, как нам решить данную проблему?

И так, вот и подошел конец циклу статей основы python , сегодня выходит последняя статья из этого цикла. И сегодня мы разбираем модуль decimal .

Для чего он вообще нужен? Дело в том, что python по умолчанию плохо работает с данными типа float , например:

Пример ошибки.
Пример ошибки.

И так, как нам решить данную проблему?

Тут нам на помощь приходит модуль decimal.

Как добавить модуль:

from decimal import Decimal

Как создать переменную, чтобы все работало правильно:

<имя переменной>= Decimal(<число в виде строки>)

Теперь можно спокойно складывать данную переменную без ошибок.

Кстати 0.10 не будет записано, как 0.1.

Кстати объекты типа decimal имеют свой метод quantize() позволяющий их округлять:

<>.quantize(Decimal(<1.нулей столько сколько знаков после запятой>), <как округлять>)

Что еще за параметр "Как округлять"?

Сюда вписывается одно из следующих значений, которое нужно тоже импортировать:

from decimal import Decimal, <как округлять>

Что там может быть:

ROUND_HALF_UP - в сторону повышения, если после него идет 5 или выше

ROUND_HALF_DOWN - в сторону повышения если после него число больше 5

ROUND_05UP - округляет 0 до 1, если после него идет 5

ROUND_CEILING - всегда в большую

ROUND_FLOOR - всегда в меньшую

Ладно, с этим разобрались, а что за <1.нулей столько...>

Тут все просто, хотите округлить до двух знаков после запятой, передаете '1.00' , до трех - '1.000'

Программа и результат ее работы.
Программа и результат ее работы.

Ну, что же на этом наш курс закончен, спасибо всем кто читал и кто будет читать, теперь пожалуй прикреплю все статьи из курса для тех, кто может только сейчас наткнулся:

#1 (tg)

#2 типы данных (tg)

#3 операторы сравнения, условия циклы (tg)

#4 строки (tg)

#5 функции (tg)

#6 область видимости переменных (tg)

#7 модули (tg)

#8 обработка исключений (tg)

#9 ООП (tg)

#10 ООП Ч.2 (tg)

#11 Работа с текстовыми файлами (tg)

#12 Работа с датой и временем (tg)

#13 Random (tg)

#14 Math (tg)

#15 Locale (tg)

Наш тг: @postHack

Наш дзен