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

เก็บตัวเลขทศนิยมใน MySQL ใช้ชนิดข้อมูล DECIMAL ไม่ต้องจัดรูปแบบก่อน

ใน MySQL ไม่จำเป็นต้องจัดรูปแบบตัวเลขทศนิยมก่อนบันทึก ให้ใช้ชนิดข้อมูล DECIMAL(precision, scale) ซึ่งจะจัดการความแม่นยำและการปัดเศษอัตโนมัติ

รูปแบบ

DECIMAL(precision, scale)
-- precision = จำนวนหลักทั้งหมด (รวมทศนิยม)
-- scale = จำนวนหลักทศนิยม

ตัวอย่างการใช้งาน

สร้างตารางคอลัมน์ DECIMAL(10,2) (รองรับสูงสุด 99,999,999.99):

mysql> create table DemoTable1330 (Amount DECIMAL(10,2));

เพิ่มข้อมูลทดสอบ (มีค่าที่มีทศนิยมมากกว่า 2 ตำแหน่ง):

mysql> insert into DemoTable1330 values(10944.7893);  -- จะปัดเป็น 10944.79
mysql> insert into DemoTable1330 values(9848.44);
mysql> insert into DemoTable1330 values(8009.90);
mysql> insert into DemoTable1330 values(1000.99);

ผลลัพธ์

+----------+
| Amount   |
+----------+
| 10944.79 |
| 9848.44  |
| 8009.90  |
| 1000.99  |
+----------+

ข้อดีของ DECIMAL:

  • เก็บค่าที่แม่นยำ (Exact-value) ไม่มีปัญหาความคลาดเคลื่อนแบบ Floating-point
  • ปัดเศษอัตโนมัติตาม scale ที่กำหนด (Round half up)
  • เหมาะสำหรับข้อมูลทางการเงิน, ราคา, จำนวนเงิน
  • ไม่ต้องจัดรูปแบบใน Application layer

หมายเหตุ: หาก insert ค่าที่มีทศนิยมมากกว่า scale จะเกิด Warning และปัดเศษตามกฎมาตรฐาน