ใช้ฟังก์ชัน ROUND() ของ MySQL เพื่อปัดเศษตัวเลขทศนิยม เป็นจำนวนเต็มหรือจำนวนทศนิยมตามที่ต้องการ
ตัวอย่างการใช้งาน
1. สร้างตารางเก็บจำนวนเงิน (DECIMAL)
mysql> CREATE TABLE DemoTable (
Amount DECIMAL(10,4)
);
Query OK, 0 rows affected (1.18 sec)
2. เพิ่มข้อมูลทดสอบ
mysql> INSERT INTO DemoTable VALUES(100.578); Query OK, 1 row affected (0.13 sec) mysql> INSERT INTO DemoTable VALUES(1000.458); Query OK, 1 row affected (0.14 sec) mysql> INSERT INTO DemoTable VALUES(980.89); Query OK, 1 row affected (0.13 sec)
3. ข้อมูลก่อนปัดเศษ
mysql> SELECT * FROM DemoTable; +-----------+ | Amount | +-----------+ | 100.5780 | | 1000.4580 | | 980.8900 | +-----------+
4. คำสั่ง UPDATE เพื่อปัดเศษเป็นจำนวนเต็ม
mysql> UPDATE DemoTable SET Amount = ROUND(Amount); Query OK, 3 rows affected (0.12 sec) Rows matched: 3 Changed: 3 Warnings: 0
5. ผลลัพธ์หลังปัดเศษ
mysql> SELECT * FROM DemoTable; +-----------+ | Amount | +-----------+ | 101.0000 | | 1000.0000 | | 981.0000 | +-----------+
รูปแบบการใช้งาน ROUND()
| รูปแบบ | คำอธิบาย | ตัวอย่าง | ผลลัพธ์ |
|---|---|---|---|
ROUND(N) | ปัดเศษเป็นจำนวนเต็ม | ROUND(100.578) | 101 |
ROUND(N, D) | ปัดเศษเหลือ D ตำแหน่งทศนิยม | ROUND(100.578, 2) | 100.58 |
ROUND(N, -D) | ปัดเศษที่ตำแหน่งหน่วย, สิบ, ร้อย... | ROUND(100.578, -1) | 100 |
หมายเหตุ
ROUND()ใช้กฎ "ปัดครึ่งขึ้น" (Round half up) คือ .5 ขึ้นไปจะปัดขึ้น- ชนิดข้อมูล
DECIMAL(10,4)จะเก็บค่าทศนิยม 4 ตำแหน่ง แม้ปัดเป็นจำนวนเต็มแล้วก็จะแสดงเป็น101.0000 - หากต้องการเก็บเฉพาะจำนวนเต็ม ให้เปลี่ยนชนิดข้อมูลเป็น
INTหรือใช้CAST(ROUND(Amount) AS UNSIGNED)