1
Amy 原创整理|资料核验:2026-10-30
PostgreSQL 文档将 numeric、decimal 列为精确的用户指定精度类型,将 real、double precision 列为近似浮点类型。需要精确记录金额等数值时,官方特别建议考虑 numeric。
precision 表示总有效位数,scale 表示小数位数。教学示例:numeric(8,2) 的“8”不是八位整数外加两位小数,而是总共八位,其中两位小数。
Amy 建议:定义字段前先写清最大金额、允许小数位与舍入规则,再检查应用程序传入的类型。仅在数据库端选了 numeric,不能修复上游已经发生的精度损失。
也别忽略性能取舍:文档指出 numeric 计算通常比整数和浮点运算慢。以上是数据建模说明,不涉及投资或收益建议。
官方来源:
https://www.postgresql.org/docs/current/datatype-numeric.html