Computer >> Máy Tính >  >> Lập trình >> MySQL

Sự khác biệt đáng kể giữa hàm TRUNCATE () và ROUND () của MySQL là gì?


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)