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

Data Type ที่เหมาะสมที่สุดสำหรับเงิน/สกุลเงินใน MySQL

DECIMAL เป็น Data Type ที่เหมาะสมที่สุดสำหรับเก็บเงิน เพราะแม่นยำ ไม่มีปัญหาจุดทศนิยมลอย (Floating Point Error)

ไวยากรณ์ DECIMAL

DECIMAL(TotalDigits, DigitsAfterDecimalPoint);

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

สร้างตาราง CurrenciesDemo:

mysql> CREATE TABLE CurrenciesDemo (TotalPrice DECIMAL(10,2));

เพิ่มข้อมูลราคา:

mysql> INSERT INTO CurrenciesDemo VALUES(1647575.67),(1647575),(99599596),(1986.50),(99999999.90);

ผลลัพธ์ (แสดงทศนิยม 2 ตำแหน่งเสมอ)

+-------------+
| TotalPrice  |
+-------------+
| 1647575.67  |
| 1647575.00  |
| 99599596.00 |
| 1986.50     |
| 99999999.90 |
+-------------+

แสดงพร้อมสัญลักษณ์สกุลเงิน

mysql> SELECT CONCAT('$', TotalPrice) AS DollarSign FROM CurrenciesDemo;
+--------------+
| DollarSign   |
+--------------+
| $1647575.67  |
| $1647575.00  |
| $99599596.00 |
| $1986.50     |
| $99999999.90 |
+--------------+

ทำไมไม่ใช้ FLOAT/DOUBLE: มีปัญหาความแม่นยำ (0.1 + 0.2 ≠ 0.3) ไม่เหมาะกับการคำนวณเงิน

แนะนำ: DECIMAL(19,4) หรือ DECIMAL(10,2) ขึ้นอยู่กับขนาดธุรกรรม