CoolPython
4.68K subscribers
20 photos
44 links
Канал об основах Python и хороших практиках разработки. Создаём системность в обрывочных знаниях.

Тем, кто хочет понимать, что пишет!
Download Telegram
Вы, наверное, знаете, что из-за того, что числа в памяти представлены в двоичной форме, в Python есть ошибка вида

print(0.1 + 0.2)
# 0.30000000000000004


В Python модуль decimal поддерживает точную арифметику десятичных чисел. Она важна в областях, требующих высокой точности, например, в финансах или научных расчетах.

А вот кто скажет, почему возникает разница в примерах ниже?

1️⃣

from decimal import Decimal

a = Decimal(0.1)
b = Decimal(0.2)
print(a + b)
# 0.3000000000000000166533453694


2️⃣

a = Decimal('0.1')
b = Decimal('0.2')
print(a + b)
# 0.3


Жду ваши ответы в комментариях!