TRUNCATE = ตัดทิ้ง, ROUND = ปัดเศษ
TRUNCATE()
ตัดทิ้งหลังจุดทศนิยม ไม่ปัดเศษ
mysql> SELECT TRUNCATE(7.536432, 2);
+----------------------+
| TRUNCATE(7.536432, 2) |
+----------------------+
| 7.53 |
+----------------------+
ROUND()
ปัดเศษตามหลักที่ระบุ ดูตัวเลขถัดไป ≥5 ปัดขึ้น
mysql> SELECT ROUND(5.693893); -- 6
mysql> SELECT ROUND(5.693893, 2); -- 5.69
ความต่างสำคัญ
| ฟังก์ชัน | พฤติกรรม |
|---|---|
| ROUND() | ปัดขึ้น/ลง ขึ้นกับตัวเลขถัดไป (≥5 ปัดขึ้น) |
| TRUNCATE() | ตัดทิ้งเลย ไม่ดูตัวเลขถัดไป |
ตัวอย่างเปรียบเทียบ
mysql> SELECT ROUND(1.289, 2) AS 'AFTER ROUND', TRUNCATE(1.289, 2) AS 'AFTER TRUNCATE';
+-------------+----------------+
| AFTER ROUND | AFTER TRUNCATE |
+-------------+----------------+
| 1.29 | 1.28 |
+-------------+----------------+
Decimals ติดลบ
- ROUND: ปัดเศษส่วนจำนวนเต็ม (ดูตัวเลขถัดไป)
- TRUNCATE: ตัดทิ้งส่วนจำนวนเต็ม (ไม่ดูตัวเลขถัดไป)