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

ตั้งค่า MySQL DECIMAL ให้มีความแม่นยำ 10 ตำแหน่งหลังจุดทศนิยม


ชนิดข้อมูล DECIMAL(M,D) รับพารามิเตอร์ 2 ตัว: M = จำนวนหลักทั้งหมด (Precision), D = จำนวนหลักหลังจุดทศนิยม (Scale)

หากต้องการ 10 ตำแหน่งหลังจุดทศนิยม ใช้ DECIMAL(20,10) หมายถึงรวม 20 หลัก โดย 10 หลักหลังจุดทศนิยม และ 10 หลักหน้าจุดทศนิยม

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

สร้างตาราง:

mysql> CREATE TABLE Decimal_Demo ( Id INT NOT NULL AUTO_INCREMENT, Price DECIMAL(20,10), PRIMARY KEY(Id) ); Query OK, 0 rows affected (1.06 sec)

เพิ่มข้อมูลทดสอบ:

mysql> INSERT INTO Decimal_Demo(Price) VALUES(7475433123.1727374747); Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO Decimal_Demo(Price) VALUES(999.9999999999); Query OK, 1 row affected (0.19 sec)
mysql> INSERT INTO Decimal_Demo(Price) VALUES(1363645345.1726364664); Query OK, 1 row affected (0.16 sec)
mysql> INSERT INTO Decimal_Demo(Price) VALUES(1.172636466437475656565); Query OK, 1 row affected, 1 warning (0.53 sec)
mysql> INSERT INTO Decimal_Demo(Price) VALUES(0.9999999999); Query OK, 1 row affected (0.20 sec)

แสดงข้อมูล:

+----+-----------------------+ | Id | Price                 | +----+-----------------------+ | 1  | 7475433123.1727374747 | | 2  | 999.9999999999        | | 3  | 1363645345.1726364664 | | 4  | 1.1726364664          | | 5  | 0.9999999999          | +----+-----------------------+ 5 rows in set (0.00 sec)

แถวที่ 4 มีคำเตือน (Warning) เนื่องจากค่าต้นฉบับมีหลักมากกว่า 10 ตำแหน่งหลังจุดทศนิยม จึงถูกปัดเศษ/ตัดทิ้ง

หมายเหตุ: สำหรับราคา/เงิน ควรใช้ DECIMAL(18,2) หรือ DECIMAL(19,4) ตามมาตรฐานการเงิน