В MariaDB, FLOOR()
е вградена числова функция, която връща най-голямата стойност, не по-голяма от нейния аргумент.
Синтаксис
Синтаксисът е така:
FLOOR(X)
Където X
е стойността, към която да се приложи операцията.
Пример
Ето един пример:
SELECT FLOOR(3.6789);
Резултат:
+---------------+ | FLOOR(3.6789) | +---------------+ | 3 | +---------------+
Предаването на отрицателна стойност води до следния резултат:
SELECT FLOOR(-3.6789);
Резултат:
+----------------+ | FLOOR(-3.6789) | +----------------+ | -4 | +----------------+
В сравнение с ROUND()
FLOOR()
функцията е различна от ROUND()
функция. ROUND()
функцията ще закръгли числото нагоре в някои случаи и надолу в други. FLOOR()
функцията, от друга страна, винаги връща най-голямата целочислена стойност, не по-голяма от нейния аргумент.
SELECT
FLOOR(3.6789),
ROUND(3.6789);
Резултат:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Също така, ROUND()
ни позволява да посочим броя на десетичните знаци, които да закръгляме до:
SELECT
FLOOR(3.6789),
ROUND(3.6789, 2);
Резултат:
+---------------+------------------+ | FLOOR(3.6789) | ROUND(3.6789, 2) | +---------------+------------------+ | 3 | 3.68 | +---------------+------------------+
FLOOR()
също е различен от TRUNCATE()
функция, която просто съкращава числото до даден десетичен знак.
Нечислови аргументи
Ето какво се случва, когато предоставим нечислов аргумент:
SELECT FLOOR('Ten');
Резултат:
+--------------+ | FLOOR('Ten') | +--------------+ | 0 | +--------------+ 1 row in set, 1 warning (0.000 sec)
Нека проверим предупреждението:
SHOW WARNINGS;
Резултат:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
Липсващи аргументи
Извикване на FLOOR()
без аргумент води до грешка:
SELECT FLOOR();
Резултат:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FLOOR'