Trong MariaDB, FLOOR()
là một hàm số được tích hợp sẵn trả về giá trị số nguyên lớn nhất không lớn hơn đối số của nó.
Cú pháp
Cú pháp như sau:
FLOOR(X)
Ở đâu X
là giá trị để áp dụng thao tác.
Ví dụ
Đây là một ví dụ:
SELECT FLOOR(3.6789);
Kết quả:
+---------------+ | FLOOR(3.6789) | +---------------+ | 3 | +---------------+
Việc chuyển một giá trị âm sẽ tạo ra kết quả sau:
SELECT FLOOR(-3.6789);
Kết quả:
+----------------+ | FLOOR(-3.6789) | +----------------+ | -4 | +----------------+
So với ROUND()
FLOOR()
hàm khác với ROUND()
hàm số. ROUND()
hàm sẽ làm tròn số lên trong một số trường hợp và giảm xuống trong một số trường hợp khác. FLOOR()
mặt khác, hàm luôn trả về giá trị số nguyên lớn nhất không lớn hơn đối số của nó.
SELECT
FLOOR(3.6789),
ROUND(3.6789);
Kết quả:
+---------------+---------------+ | FLOOR(3.6789) | ROUND(3.6789) | +---------------+---------------+ | 3 | 4 | +---------------+---------------+
Ngoài ra, ROUND()
cho phép chúng tôi chỉ định số chữ số thập phân để làm tròn thành:
SELECT
FLOOR(3.6789),
ROUND(3.6789, 2);
Kết quả:
+---------------+------------------+ | FLOOR(3.6789) | ROUND(3.6789, 2) | +---------------+------------------+ | 3 | 3.68 | +---------------+------------------+
FLOOR()
cũng khác với TRUNCATE()
hàm, chỉ đơn giản là cắt ngắn số đến một vị trí thập phân nhất định.
Đối số không phải dạng số
Đây là những gì sẽ xảy ra khi chúng tôi cung cấp đối số không phải là số:
SELECT FLOOR('Ten');
Kết quả:
+--------------+ | FLOOR('Ten') | +--------------+ | 0 | +--------------+ 1 row in set, 1 warning (0.000 sec)
Hãy kiểm tra cảnh báo:
SHOW WARNINGS;
Kết quả:
+---------+------+-----------------------------------------+ | Level | Code | Message | +---------+------+-----------------------------------------+ | Warning | 1292 | Truncated incorrect DOUBLE value: 'Ten' | +---------+------+-----------------------------------------+
Thiếu đối số
Đang gọi FLOOR()
không có đối số dẫn đến lỗi:
SELECT FLOOR();
Kết quả:
ERROR 1582 (42000): Incorrect parameter count in the call to native function 'FLOOR'