Ce face fmod
Operatorul % lucrează doar cu întregi și taie zecimalele înainte de calcul. fmod calculează restul pentru numere cu zecimale.
Semnul rezultatului este același cu semnul primului număr. Din cauza modului în care calculatorul păstrează zecimalele, rezultatul poate avea mici erori de rotunjire.
Parametri
| Parametru | Descriere |
|---|---|
$num1 |
Deîmpărțitul. |
$num2 |
Împărțitorul. |
Ce returnează
Restul împărțirii, ca float.
Exemple
Exemplul 1: fmod față de %
% lucrează doar cu întregi. fmod păstrează zecimalele. La numere negative, ambele dau un rest cu semnul primului număr.
<?php
var_dump(7 % 2);
var_dump(fmod(7.5, 2));
var_dump(fmod(-7, 3));
var_dump(-7 % 3);
Rezultat
int(1)
float(1.5)
float(-1)
int(-1)
Exemplul 2: Erori mici de rotunjire
<?php
var_dump(fmod(10, 3.3));
echo round(fmod(10, 3.3), 2);
Rezultat
float(0.10000000000000053)
0.1
Greșeli frecvente
- Folosești
%cu numere cu zecimale.7.5 % 2calculează de fapt7 % 2, iar din PHP 8.1 primești și un mesajDeprecatedpentru conversia cu pierdere.