文中描述的 MONEY(8 字節,±922337203685477.5808)與 SMALLMONEY(4 字節,±214748.3647)是 **SQL Server / Sybase** 的專有類型。MySQL **不支持**這兩個類型。
| 類型 | 存儲 | 精度/範圍 | 適用場景 |
|---|---|---|---|
| DECIMAL(p,s) / NUMERIC(p,s) | 每 9 位數字 4 字節 | 精確定點數,最多 65 位數字 | 貨幣、金融、精確計算首選,避免浮點誤差 |
| DOUBLE[(M,D)] | 8 字節 | 雙精度浮點,約 15 位有效數字 | 科學計算、近似值、非金融場景 |
| FLOAT[(M,D)] | 4 字節 | 單精度浮點,約 7 位有效數字 | 極少用,精度不足 |
| BIGINT | 8 字節 | 整數 ±9.22e18 | 存儲「分」為單位的整數(如 100 元 = 10000 分),應用層除 100 顯示 |
MONEY 至 MySQL:直接映射為 DECIMAL(19,4)。CREATE TABLE account (
id BIGINT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
balance DECIMAL(19,4) NOT NULL DEFAULT 0.0000 COMMENT '賬戶餘額,精確到 0.0001 元'
);