金额
DECIMAL
sql
DECIMAL(p, s)p:总位数
s:小数位
sql
DECIMAL(10, 2)该数最多10位,并且有2位小数,可表示范围:-99999999.99 ~ 99999999.99
| 场景 | 类型 |
|---|---|
| 普通金额 | DECIMAL(10,2) |
| 大额资金 | DECIMAL(18,2) |
| 高精度(手续费/汇率) | DECIMAL(18,6) |
在Java中使用BigDecimal与之对应
java
private BigDecimal amount;VARCHAR(不推荐)
❌ 无法做金额计算(排序、加减都麻烦)
❌ 容易出现脏数据(比如 "12a.3")
❌ 性能差(索引、计算)
DOUBLE(不推荐)
❌ 精度丢失(经典问题:0.1 + 0.2 ≠ 0.3)
❌ 财务数据绝对不能用
