เมื่อต้องการแสดงตัวเลขทศนิยมจำนวนหลักที่กำหนดโดย ไม่ปัดเศษ (Truncate) ให้ใช้ฟังก์ชัน TRUNCATE() ซึ่งต่างจาก ROUND() ที่จะปัดเศษ
สร้างตารางและข้อมูล
mysql> create table DemoTable (
Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
Value DECIMAL(10,5)
);
mysql> insert into DemoTable(Value) values(109.4567); mysql> insert into DemoTable(Value) values(15.9875); mysql> insert into DemoTable(Value) values(1234.2346789);
ข้อมูลต้นฉบับ (5 ทศนิยม)
+----+------------+ | Id | Value | +----+------------+ | 1 | 109.45670 | | 2 | 15.98750 | | 3 | 1234.23468 | +----+------------+
คำสั่ง TRUNCATE 3 ตำแหน่ง
mysql> select truncate(Value, 3) from DemoTable;
ผลลัพธ์
+-------------------+ | truncate(Value,3) | +-------------------+ | 109.456 | | 15.987 | | 1234.234 | +-------------------+
TRUNCATE() vs ROUND()
| ค่า | TRUNCATE(,3) | ROUND(,3) |
|---|---|---|
| 109.4567 | 109.456 | 109.457 |
| 15.9875 | 15.987 | 15.988 |
| 1234.2346789 | 1234.234 | 1234.235 |
รูปแบบคำสั่ง
TRUNCATE(ค่า, จำนวนทศนิยม)
- จำนวนทศนิยมเป็น ลบ ได้:
TRUNCATE(12345, -2) = 12300 - คืนค่าเป็นชนิดข้อมูลเดียวกับอินพุต
กรณีใช้งานจริง
- การคำนวณทางการเงินที่ต้องตัดทศนิยม (ไม่ปัด)
- การแสดงราคาสินค้า ตำแหน่งสตางค์
- การคำนวณภาษี/ดอกเบี้ยที่กฎระเบียบกำหนดให้ตัดทศนิยม