fmod
fmod($delenec, $delitel)
Vrátí zbytek po dělení dvou čísel, která mohou být desetinná. Operátor % pracuje jen s celými čísly a desetinnou část předem zahodí.
Parametry
- $delenec – dělené číslo.
- $delitel – číslo, kterým se dělí.
Příklady
echo fmod(7.5, 2); // 1.5 // operátor % počítá jen s celými čísly echo 7 % 2; // 1 // výsledek je vždy desetinné číslo var_dump(fmod(10, 5)); // float(0) // znaménko výsledku je podle dělence echo fmod(-7, 3); // -1 echo fmod(7, -3); // 1 // úhel převedený do rozsahu 0 až 360 echo fmod(450, 360); // 90 echo fmod(fmod(-90, 360) + 360, 360); // 270 // je číslo násobkem čtvrtiny? var_dump(fmod(1.75, 0.25) == 0); // bool(true) // u čísel jako 0.1 se projeví nepřesnost desetinných čísel var_dump(fmod(0.3, 0.1) == 0); // bool(false) // dělení nulou var_dump(is_nan(fmod(5, 0))); // bool(true)
Na co si dát pozor
- Desetinná čísla nejsou uložená přesně. Zbytek po dělení čísla 0,3 číslem 0,1 proto nevyjde nula. Násobky částek kontrolujte v celých číslech (haléřích) operátorem %.
- Znaménko výsledku se řídí dělencem, takže zbytek záporného čísla je záporný. Kladný zbytek dá postup z příkladu s úhlem.
- Dělení nulou nevyhodí chybu, vrátí NAN. Operátor % při dělení nulou vyhodí výjimku DivisionByZeroError.
- Vrací vždy desetinné číslo. Pro celá čísla použijte operátor % nebo intdiv().