wp_fuzzy_number_match()WP 5.3.0

Проверяет, насколько два числа близки друг к другу с учётом допустимой погрешности.

Функция сравнивает ожидаемое значение с фактическим и считает их совпадающими, если разница между ними не больше указанной точности.

Это удобно, когда нужно сравнить числа с плавающей точкой, где небольшая погрешность допустима.

Важно: функция не округляет числа. Она просто считает абсолютную разницу между ними и сравнивает её с $precision.

Основа для: image_resize_dimensions()

Хуков нет.

Возвращает

true|false.

  • true — числа отличаются не больше, чем на указанную точность.
  • false — разница между числами больше.

Использование

wp_fuzzy_number_match( $expected, $actual, $precision );
$expected(int|float) (обязательный)
Ожидаемое значение.
$actual(int|float) (обязательный)
Фактическое значение, которое нужно сравнить с ожидаемым.
$precision(int|float)
Допустимая разница между числами.
По умолчанию: 1

Примеры

0

#1 Проверка чисел с точностью по умолчанию

Числа считаются совпадающими, потому что разница между ними меньше или равна 1.

$expected = 100;
$actual   = 100.8;

if ( wp_fuzzy_number_match( $expected, $actual ) ) {
	echo 'Числа достаточно близки.';
}
0

#2 Проверка с более строгой точностью

В этом примере числа должны отличаться не больше чем на 0.1.

$expected = 10.5;
$actual   = 10.55;

if ( wp_fuzzy_number_match( $expected, $actual, 0.1 ) ) {
	echo 'Значение подходит.';
} else {
	echo 'Значение слишком сильно отличается.';
}
0

#3 Сравнение результата вычисления

Полезно при работе с дробными числами, где результат может немного отличаться из-за особенностей вычислений.

$expected_total = 19.99;
$actual_total   = 20 - 0.01;

if ( wp_fuzzy_number_match( $expected_total, $actual_total, 0.001 ) ) {
	echo 'Итоговая сумма совпадает.';
}

Список изменений

С версии 5.3.0 Введена.

Код wp_fuzzy_number_match() WP 7.0

function wp_fuzzy_number_match( $expected, $actual, $precision = 1 ) {
	return abs( (float) $expected - (float) $actual ) <= $precision;
}