(PHP 8)
fdiv — Divide dos números, según la norma IEEE 754
Devuelve el resultado en coma flotante de la división de
num1 por num2.
Si num2 es cero, entonces uno de los valores INF ,
-INF , o NAN será devuelto.
Cabe señalar que en las comparaciones, NAN nunca será igual (==) o idéntico (===) a
ningún valor, incluyendo a sí mismo.
num1El dividendo (numerador)
num2El divisor
El resultado en coma flotante de
num1/num2
Ejemplo #1 Uso de 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;
}
}
?>