ROUND() în MySQL

Funcții matematice MySQL 5.0+

Rotunjește un număr la un număr de zecimale (sau la zeci, sute, cu valori negative).

Sintaxă
ROUND(numar[, zecimale])

Ce face ROUND()

ROUND() rotunjește la cel mai apropiat număr. Pentru numere exacte (DECIMAL, întregi), jumătatea se rotunjește în sus, departe de zero: 2.5 → 3, -2.5 → -3. Pentru numere aproximative (FLOAT, DOUBLE), jumătatea se rotunjește la numărul par cel mai apropiat: 2.5e0 → 2.

Cu zecimale negative rotunjești la zeci, sute etc.: ROUND(1234.5, -2) = 1200.

Parametri

Parametru Descriere
numar Numărul rotunjit.
zecimale Opțional. Implicit 0; negativ pentru zeci, sute…

Ce returnează

Numărul rotunjit.

Exemple

Exemplele de pe această pagină pornesc de la datele de mai jos. Rulează mai întâi acest cod, apoi exemplul.

CREATE TABLE produse (
  id INT PRIMARY KEY,
  nume VARCHAR(30),
  pret DECIMAL(10,2),
  stoc INT,
  reducere INT
);

INSERT INTO produse VALUES
  (1, 'Laptop', 3499.90, 4, NULL),
  (2, 'Mouse', 79.50, 25, 10),
  (3, 'Birou', 899.00, 0, 15),
  (4, 'Scaun', 649.99, 7, NULL),
  (5, 'Monitor', 1199.00, 3, 5);

Exemplul 1: Zecimale, valori negative și jumătăți

SELECT ROUND(2.567, 2) AS doua_zecimale, ROUND(1234.5, -2) AS la_sute,
       ROUND(2.5) AS exact_25, ROUND(-2.5) AS exact_minus25, ROUND(2.5e0) AS aproximativ_25;

Rezultat

+---------------+---------+----------+---------------+----------------+
| doua_zecimale | la_sute | exact_25 | exact_minus25 | aproximativ_25 |
+---------------+---------+----------+---------------+----------------+
|          2.57 |    1200 |        3 |            -3 |              2 |
+---------------+---------+----------+---------------+----------------+

Exemplul 2: Prețuri cu TVA rotunjite

SELECT nume, pret, ROUND(pret * 1.21, 2) AS cu_tva
FROM produse
ORDER BY id;

Rezultat

+---------+---------+---------+
| nume    | pret    | cu_tva  |
+---------+---------+---------+
| Laptop  | 3499.90 | 4234.88 |
| Mouse   |   79.50 |   96.20 |
| Birou   |  899.00 | 1087.79 |
| Scaun   |  649.99 |  786.49 |
| Monitor | 1199.00 | 1450.79 |
+---------+---------+---------+

Greșeli frecvente

  • Lucrezi cu prețuri în FLOAT și te miri de rotunjiri ciudate. Pentru bani folosește DECIMAL.

Comenzi înrudite

  • TRUNCATE(): Taie un număr la un număr de zecimale, fără rotunjire.
  • CEIL(): Rotunjește în sus, la cel mai mic număr întreg mai mare sau egal.
  • FLOOR(): Rotunjește în jos, la cel mai mare număr întreg mai mic sau egal.
  • FORMAT(): Formatează un număr cu separator de mii și un număr fix de zecimale, opțional după limbă.