Decimal в Python: работа с вещественными числами без потерь данных
Decimal в Python - это класс из стандартной библиотеки, который реализует арифметику высокой точности для десятичных чисел. Он предоставляет дополнительную точность, которая не может быть гарантирована с использованием типа float в Python.
Чтобы использовать Decimal в Python, сначала необходимо импортировать его из модуля decimal:
python
from decimal import Decimal
Затем можно создать десятичное число, указав его значение в виде строки:
python
a = Decimal('0.1')
b = Decimal('0.2')
c = a + b
print(c) # 0.3
На выходе мы получим ожидаемый результат 0.3, в то время, как если бы мы использовали float, результат был бы с небольшой погрешностью.
Decimal также позволяет управлять точностью вычислений с помощью атрибута контекста. Это позволяет установить количество десятичных знаков, которые будут учитываться в вычислениях:
python
from decimal import Decimal, getcontext
# Установка точности на 5 знаков после запятой
getcontext().prec = 5
a = Decimal('1') / Decimal('7')
print(a) # 0.14285
Также Decimal обладает другими полезными методами, такими как округление и сравнение десятичных чисел:
python
from decimal import Decimal
# Округление до 2 знаков после запятой
a = Decimal('1.23456789')
b = a.quantize(Decimal('0.01'))
print(b) # 1.23
# Сравнение десятичных чисел
c = Decimal('10.5')
d = Decimal('10.6')
if c < d:
print('c is less than d')
else:
print('c is greater than or equal to d')
Также следует отметить, что использование Decimal может быть медленнее, чем использование float, поэтому следует использовать его только там, где это абсолютно необходимо.