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

MySQL ปัดเศษตัวเลขในคอลัมน์ด้วยฟังก์ชัน ROUND()

ใช้ฟังก์ชัน 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)