คำสั่งหลัก
ใช้ ROUND(column, decimal_places) ปัดเศษทศนิยมตามจำนวนหลักที่ต้องการ
รูปแบบคำสั่ง
SELECT ROUND(yourColumnName, yourPrecisionIntegerValue) FROM yourTableName;
ตัวอย่างครบถ้วน
1. สร้างตาราง
mysql> create table givenPrecisionDemo
-> (
-> Amount float
-> );
Query OK, 0 rows affected (0.61 sec)
2. เพิ่มข้อมูลทศนิยม
mysql> insert into givenPrecisionDemo(Amount) values(45.678); Query OK, 1 row affected (0.12 sec) mysql> insert into givenPrecisionDemo(Amount) values(123.456); Query OK, 1 row affected (0.15 sec) mysql> insert into givenPrecisionDemo(Amount) values(245.890); Query OK, 1 row affected (0.20 sec) mysql> insert into givenPrecisionDemo(Amount) values(980.678); Query OK, 1 row affected (0.19 sec)
3. ดูข้อมูลดิบ
mysql> select * from givenPrecisionDemo;
+---------+ | Amount | +---------+ | 45.678 | | 123.456 | | 245.89 | | 980.678 | +---------+
4. ROUND 2 ตำแหน่งทศนิยม
mysql> SELECT ROUND(Amount, 2) from givenPrecisionDemo;
+-----------------+ | ROUND(Amount,2) | +-----------------+ | 45.68 | | 123.46 | | 245.89 | | 980.68 | +-----------------+
ROUND() Behavior Details
| Input | ROUND(x,2) | หมายเหตุ |
|---|---|---|
| 45.678 | 45.68 | ปัดขึ้น (8>5) |
| 123.456 | 123.46 | ปัดขึ้น (6>5) |
| 245.890 | 245.89 | 0 ท้ายถูกตัดทิ้ง |
| 980.678 | 980.68 | ปัดขึ้น |
| -45.678 | -45.68 | ลบก็ปัดไปทางจากศูนย์ |
ฟังก์ชันเกี่ยวข้อง
| Function | พฤติกรรม | ตัวอย่าง |
|---|---|---|
| ROUND(x, d) | ปัดปกติ (round half up) | ROUND(1.5,0)=2 |
| TRUNCATE(x, d) | ตัดทิ้ง (ไม่ปัด) | TRUNCATE(1.999,2)=1.99 |
| CEIL(x) | ปัดขึ้น | CEIL(1.1)=2 |
| FLOOR(x) | ปัดลง | FLOOR(1.9)=1 |
| FORMAT(x, d) | format พร้อม comma | FORMAT(1234.5,2)='1,234.50' |
ปัญหา FLOAT Precision
SELECT ROUND(0.1 + 0.2, 2); -- 0.3 ✓ SELECT 0.1 + 0.2; -- 0.30000000000000004 ❌
แนะนำ: ใช้ DECIMAL สำหรับเงิน/การคำนวณแม่นยำ ใช้ FLOAT/DOUBLE สำหรับวิทยาศาสตร์/engineering ที่ยอมรับ error ได้
MySQL 8.0: ROUND() กับ DECIMAL คืนค่า DECIMAL
SELECT ROUND(CAST(45.678 AS DECIMAL(10,3)), 2); -- 45.68 (DECIMAL)