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

TRUNCATE() กับ Decimals ติดลบ ตัดทิ้งส่วนจำนวนเต็ม ไม่ปัดเศษ

TRUNCATE(number, negative_decimals)

ตัดทิ้งหลักจำนวนเต็ม ไม่ปัดเศษ ตรงข้ามกับ ROUND()

ตัวอย่าง

mysql> SELECT TRUNCATE(1789.456, -1);
+-----------------------+
| TRUNCATE(1789.456, -1) |
+-----------------------+
| 1780                  |
+-----------------------+

mysql> SELECT TRUNCATE(1789.456, -2);
+-----------------------+
| TRUNCATE(1789.456, -2) |
+-----------------------+
| 1700                  |
+-----------------------+

mysql> SELECT TRUNCATE(1789.456, -3);
+-----------------------+
| TRUNCATE(1789.456, -3) |
+-----------------------+
| 1000                  |
+-----------------------+

mysql> SELECT TRUNCATE(1789.456, -4);
+-----------------------+
| TRUNCATE(1789.456, -4) |
+-----------------------+
| 0                     |
+-----------------------+

การอธิบาย

Decimalsการกระทำผลลัพธ์
-1ตัดหลักสิบ (9) ทิ้ง1780
-2ตัดหลักร้อย+สิบ (8,9) ทิ้ง1700
-3ตัดหลักพัน+ร้อย+สิบ (7,8,9) ทิ้ง1000
-4ตัดหมด (มี 4 หลัก)0

เปรียบเทียบ ROUND vs TRUNCATE (Decimals ติดลบ)

ROUND(1789.456, -1)  = 1790  (ดู 9 ≥5 → 8→9)
TRUNCATE(1789.456, -1) = 1780  (ตัด 9 ทิ้งเลย)