การปัดทศนิยมลง (Truncate/Floor) ใน MySQL
ใช้ฟังก์ชัน TRUNCATE(number, decimals) เพื่อตัดทศนิยมทิ้งโดยไม่ปัด (ไม่ใช่ Round)
TRUNCATE(value, decimal_places)
ตัวอย่างการใช้งาน
สร้างตารางและเพิ่มค่าทศนิยม:
mysql> create table DemoTable (Value DECIMAL(20,8)); mysql> insert into DemoTable values(23.5654433); mysql> insert into DemoTable values(12.345542211); mysql> insert into DemoTable values(12345.678543);
ข้อมูลต้นฉบับ:
+----------------+ | Value | +----------------+ | 23.56544330 | | 12.34554221 | | 12345.67854300 | +----------------+
อัปเดตให้ปัดทศนิยมเหลือ 2 ตำแหน่ง (ตัดทิ้ง ไม่ปัด):
mysql> update DemoTable set Value = truncate(Value, 2); Query OK, 3 rows affected (0.20 sec)
ผลลัพธ์หลังอัปเดต:
+----------------+ | Value | +----------------+ | 23.56000000 | | 12.34000000 | | 12345.67000000 | +----------------+
ความแตกต่าง TRUNCATE vs ROUND vs FLOOR:
| ค่า | TRUNCATE(x,2) | ROUND(x,2) | FLOOR(x) |
|---|---|---|---|
| 23.565 | 23.56 | 23.57 | 23 |
| 12.345 | 12.34 | 12.35 | 12 |
| -12.345 | -12.34 | -12.35 | -13 |
หมายเหตุ: TRUNCATE ทำงานกับลบได้ถูกต้อง (ตัดทิ้งไปทางศูนย์) | FLOOR ปัดลงไปทาง -infinity | ROUND ปัดตามกฎคณิตศาสตร์