В Python сравнение чисел с точностью иногда может оказаться затруднительным, особенно при работе с числами с плавающей запятой. В этой статье блога вы познакомитесь с несколькими методами точного сравнения чисел, используя разговорный язык, и предоставите примеры кода для иллюстрации каждого подхода. К концу вы получите четкое представление о том, как выполнять точное сравнение чисел в Python.
Метод 1: использование функции округления
Самый простой способ сравнить числа с точностью — использовать встроенную функцию округления. Эта функция позволяет округлить число до заданного количества десятичных знаков, что упрощает сравнение двух чисел, не беспокоясь о небольших различиях.
a = 0.1 + 0.1 + 0.1
b = 0.3
if round(a, 1) == round(b, 1):
print("Numbers are equal")
else:
print("Numbers are not equal")
Метод 2: использование функции «math.isclose».
Если вам нужен больший контроль над точностью сравнения чисел, модуль «math» предоставляет функцию «isclose». Эта функция позволяет сравнивать два числа в пределах определенного допуска, учитывая как абсолютные, так и относительные различия.
import math
a = 1.23456789
b = 1.23456788
if math.isclose(a, b, rel_tol=1e-9, abs_tol=1e-9):
print("Numbers are close")
else:
print("Numbers are not close")
Метод 3: работа с «десятичным» модулем
Для точных десятичных вычислений, особенно при работе с финансовыми или денежными значениями, рекомендуется использовать «десятичный» модуль. Этот модуль предоставляет тип данных «Десятичный», который позволяет избежать ограничений чисел с плавающей запятой и позволяет проводить точные сравнения.
from decimal import Decimal
a = Decimal('0.1') + Decimal('0.1') + Decimal('0.1')
b = Decimal('0.3')
if a == b:
print("Numbers are equal")
else:
print("Numbers are not equal")
Сравнение чисел с точностью в Python имеет решающее значение для точных расчетов и принятия решений. В этой статье мы рассмотрели три различных метода: использование функции «round», функции «math.isclose» и модуля «decimal». Каждый подход удовлетворяет конкретным потребностям, будь то быстрое приближение или требование точных десятичных вычислений. Понимая эти методы, вы сможете уверенно и точно сравнивать числа в своих программах на Python.