fmod în PHP

Returnează restul împărțirii a două numere cu zecimale.

Sintaxă
fmod(float $num1, float $num2): float

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 % 2 calculează de fapt 7 % 2, iar din PHP 8.1 primești și un mesaj Deprecated pentru conversia cu pierdere.

Comenzi înrudite

  • intdiv: Împarte două numere întregi și returnează doar partea întreagă a rezultatului.
  • round: Rotunjește un număr la cel mai apropiat întreg sau la un număr de zecimale.