MariaDB có FLOOR()
và một TRUNCATE()
hàm có thể trả về các kết quả giống nhau hoặc các kết quả khác nhau, tùy thuộc vào giá trị chính xác của các đối số của chúng.
Dưới đây là tóm tắt nhanh về sự khác biệt giữa FLOOR()
và TRUNCATE()
trong MariaDB.
Sự khác biệt
Tóm lại, đây là sự khác biệt giữa từng chức năng:
-
FLOOR()
trả về giá trị số nguyên lớn nhất không lớn hơn đối số của nó. -
TRUNCATE()
cắt ngắn đối số của nó thành một số vị trí thập phân được chỉ định.
Cú pháp
Đầu tiên, đây là cú pháp của từng hàm.
FLOOR()
Cú pháp cho FLOOR()
như sau:
FLOOR(X)
Nó trả về giá trị số nguyên lớn nhất không lớn hơn X
.
TRUNCATE()
Cú pháp cho TRUNCATE()
như sau:
TRUNCATE(X,D)
TRUNCATE()
trả về số X
, được cắt ngắn thành D
vị trí thập phân.
Ví dụ
Dưới đây là so sánh để chứng minh sự khác biệt giữa FLOOR()
và TRUNCATE()
:
SELECT
FLOOR(-3.6789),
TRUNCATE(-3.6789, 0);
Kết quả:
+----------------+----------------------+ | FLOOR(-3.6789) | TRUNCATE(-3.6789, 0) | +----------------+----------------------+ | -4 | -3 | +----------------+----------------------+
Trong trường hợp này, số là giá trị âm và kết quả từ mỗi hàm là khác nhau.
-
FLOOR()
trả về số nguyên lớn nhất (-4
) giá trị không lớn hơn đối số của nó. -
TRUNCATE()
mặt khác, chỉ cần cắt ngắn số ở vị trí thập phân được chỉ định.
Cùng một kết quả
Cả hai hàm đôi khi có thể trả về cùng một kết quả. Tất cả phụ thuộc vào giá trị của các đối số được truyền.
Nếu chúng ta thay đổi các số thành giá trị dương, cả hai hàm đều trả về cùng một kết quả:
SELECT
FLOOR(3.6789),
TRUNCATE(3.6789, 0);
Kết quả:
+---------------+---------------------+ | FLOOR(3.6789) | TRUNCATE(3.6789, 0) | +---------------+---------------------+ | 3 | 3 | +---------------+---------------------+
Lập luận thứ hai
Một sự khác biệt rõ ràng khác giữa hai hàm là TRUNCATE()
chấp nhận / yêu cầu đối số thứ hai. Điều này có thể dẫn đến kết quả chứa một phần phân số.
FLOOR()
tuy nhiên, chỉ trả về một số nguyên, vì vậy không có phần phân số nào được trả về.
Ví dụ
SELECT
FLOOR(3.6789),
TRUNCATE(3.6789, 2);
Kết quả:
+---------------+---------------------+ | FLOOR(3.6789) | TRUNCATE(3.6789, 2) | +---------------+---------------------+ | 3 | 3.67 | +---------------+---------------------+
ROUND()
Chức năng
Cả hai hàm đều khác với ROUND()
, làm tròn đối số của nó đến một số vị trí thập phân được chỉ định.