(PHP 8)
fdiv — Делит числа по правилам стандарта IEEE 754
Функция возвращает в виде числа с плавающей точкой
результат деления числа num1 на число num2.
Функция возвращает положительную бесконечность INF ,
отрицательную бесконечность -INF
или нечисло NAN ,
если число num2 равно нулю.
Обратите внимание, что сравнение нечисла NAN
не будет равно == или идентично ===
другому значению, включая само нечисло.
num1Делимое.
num2Делитель.
Функция возвращает число с плавающей точкой — результат
деления числа num1 на число num2.
Пример #1 Пример деления чисел по правилам стандарта IEEE 754 функцией fdiv()
<?php
var_dump(fdiv(5.7, 1.3)); // float(4.384615384615385)
var_dump(fdiv(4, 2)); // float(2)
var_dump(fdiv(1.0, 0.0)); // float(INF)
var_dump(fdiv(-1.0, 0.0)); // float(-INF)
var_dump(fdiv(0.0, 0.0)); // float(NAN)
?>Subject: Compatibility for older PHP
Text: Equivalent for versions before 8.0. Handles the sign of zero for INF results.
<?php
if (!function_exists('fdiv')) {
function fdiv(float $a, float $b): float
{
if (is_nan($a) || is_nan($b)) return NAN;
if ($b != 0.0) return $a / $b;
if ($a == 0.0) return NAN;
$check = function ($v) {
if ($v > 0) return 1;
if ($v < 0) return -1;
return pack('d', (float)$v) === pack('d', 0.0) ? 1 : -1;
};
return ($check($a) === $check($b)) ? INF : -INF;
}
}
?>