Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> MySQL

อะไรคือความแตกต่างที่สำคัญระหว่างฟังก์ชัน MySQL TRUNCATE () และ ROUND ()


The TRUNCATE() ฟังก์ชั่นใช้เพื่อคืนค่าของ X ที่ถูกตัดทอนเป็น D จำนวนตำแหน่งทศนิยม ถ้า D เป็น 0 จุดทศนิยมจะถูกลบออก ถ้า D เป็นค่าลบ จำนวนค่า D ในส่วนจำนวนเต็มของค่าจะถูกตัดทอน พิจารณาตัวอย่างต่อไปนี้ –

mysql> Select TRUNCATE(7.536432,2);
+----------------------+
| TRUNCATE(7.536432,2) |
+----------------------+
|                 7.53 |
+----------------------+
1 row in set (0.00 sec)

The ROUND() ฟังก์ชันส่งคืน X ที่ปัดเศษเป็นจำนวนเต็มที่ใกล้เคียงที่สุด หากมีการระบุอาร์กิวเมนต์ที่สองคือ D ฟังก์ชันจะส่งกลับ X ที่ปัดเศษเป็นทศนิยม D D ต้องเป็นค่าบวก มิฉะนั้น ตัวเลขทางขวาของจุดทศนิยมทั้งหมดจะถูกลบออก ลองพิจารณาตัวอย่างต่อไปนี้ −

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)  

จากคำจำกัดความและตัวอย่างข้างต้น เราสามารถสังเกตความแตกต่างระหว่างฟังก์ชันทั้งสองนี้ได้ −

  • ROUND() ฟังก์ชั่นปัดเศษตัวเลขขึ้นหรือลงขึ้นอยู่กับอาร์กิวเมนต์ที่สอง D และตัวเลขเอง (หลักหลัง D ทศนิยม>=5 หรือไม่)
  • TRUNCATE() ฟังก์ชั่นตัดทอนตัวเลขถึง D จำนวนตำแหน่งทศนิยมโดยไม่ตรวจสอบว่าตัวเลขหลังทศนิยม D>=5 หรือไม่
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)