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

ชนิดข้อมูลสำหรับเก็บตัวเลขทศนิยม (Float) ใน MySQL คือ DECIMAL

ใช้ DECIMAL(p, s) สำหรับตัวเลขทศนิยมที่ต้องการความแม่นยำ

DECIMAL(precision, scale) หรือ NUMERIC เก็บตัวเลขทศนิยมแบบ Exact (ไม่มีปัญหาความคลาดเคลื่อนของ Floating Point) เหมาะกับเงิน/การเงิน

ตัวอย่างสร้างตาราง

CREATE TABLE DemoTable (Price DECIMAL(10, 2));

INSERT ค่าตัวเลขทศนิยม

INSERT INTO DemoTable VALUES (874674.50), (9948984.20), (12345678.99);

ผลลัพธ์

+-------------+
| Price       |
+-------------+
| 874674.50   |
| 9948984.20  |
| 12345678.99 |
+-------------+

คำอธิบาย:

  • DECIMAL(10, 2): Precision=10 (รวมทุกหลัก), Scale=2 (ทศนิยม 2 ตำแหน่ง) → จำนวนเต็มได้ 8 หลัก
  • เก็บค่าที่แน่นอน ไม่มี Rounding Error เหมือน FLOAT/DOUBLE
  • เหมาะกับ: ราคา, จำนวนเงิน, อัตราดอกเบี้ย, การวัดที่ต้องแม่นยำ

เปรียบเทียบชนิดข้อมูลตัวเลข:

ชนิดขนาดประมาณ/แม่นยำเหมาะสำหรับ
TINYINT1 ไบต์Exact-128 ถึง 127
SMALLINT2 ไบต์Exact-32768 ถึง 32767
INT4 ไบต์Exact-2B ถึง 2B
BIGINT8 ไบต์Exact-9E18 ถึง 9E18
DECIMAL(p,s)พึ่งพา pExactเงิน, ทศนิยมแม่นยำ
FLOAT4 ไบต์Approximateวิทยาศาสตร์, ไม่ต้องแม่นยำ
DOUBLE8 ไบต์Approximateวิทยาศาสตร์, ค่ามาก/เล็กมาก

⚠ ข้อควรระวัง: FLOAT/DOUBLE ใช้ IEEE 754 Binary Floating Point มีปัญหา 0.1 + 0.2 != 0.3 ห้ามใช้กับเงิน/บัญชี