TRUNCATE () hàm được sử dụng để trả về giá trị của X bị cắt ngắn thành D số chữ số thập phân. Nếu D là 0, thì dấu thập phân bị loại bỏ. Nếu D là số âm, thì D số giá trị trong phần nguyên của giá trị sẽ bị cắt bớt. Hãy xem xét ví dụ sau -
mysql> Select TRUNCATE(7.536432,2); +----------------------+ | TRUNCATE(7.536432,2) | +----------------------+ | 7.53 | +----------------------+ 1 row in set (0.00 sec)
ROUND () hàm trả về X được làm tròn thành số nguyên gần nhất. Nếu đối số thứ hai, D, được cung cấp, thì hàm trả về X được làm tròn thành D vị trí thập phân. D phải là số dương hoặc tất cả các chữ số ở bên phải của dấu thập phân sẽ bị xóa. Hãy xem xét ví dụ sau -
mysql>SELECT ROUND(5.693893); +---------------------------------------------------------+ | ROUND(5.693893) | +---------------------------------------------------------+ | 6 | +---------------------------------------------------------+ 1 row in set (0.00 sec) mysql>SELECT ROUND(5.693893,2); +---------------------------------------------------------+ | ROUND(5.693893,2) | +---------------------------------------------------------+ | 5.69 | +---------------------------------------------------------+ 1 row in set (0.00 sec)
Từ định nghĩa và ví dụ trên, chúng ta có thể quan sát thấy sự khác biệt sau đây giữa hai hàm này -
- Hàm ROUND () làm tròn số lên hoặc xuống phụ thuộc vào đối số thứ hai D và chính số đó (chữ số sau D vị trí thập phân> =5 hoặc không). Hàm
- TRUNCATE () cắt bớt một số lên đến D số chữ số thập phân mà không cần kiểm tra xem chữ số sau D số thập phân> =5 hay không.
mysql> Select ROUND(1.289,2)AS 'AFTER ROUND',TRUNCATE(1.289,2)AS 'AFTER TRUNCATE'; +-------------+----------------+ | AFTER ROUND | AFTER TRUNCATE | +-------------+----------------+ | 1.29 | 1.28 | +-------------+----------------+ 1 row in set (0.00 sec)