提要:本教程将向您介绍 PostgreSQL 用于存储非常大的数字的 NUMERIC 类型。

NUMERIC 类型简介

NUMERIC 类型可以存储多位数字。通常在存储对精度要求很高的金额、货币的情况下使用它。其语法如下:

NUMERIC(precision, scale)

precision 是总精度,scale 是小数部分的位数。NUMERIC 在小数前最多可以有 131072 位,在小数点之后,最多可以有 16383 位。scale 可以是0,或直接省略:

NUMERIC(precision)

如果将 precisionscale 都省略了,则可以存储任何不超过上限精度的数字:

NUMERIC

在 PostgreSQL 中,NUMERICDECIMAL 相同,并且都是标准 SQL 的一部分。

如果对精度没有很高的要求,请不要使用 NUMERIC。因为和 INTEGERFLOATDOUBLE 相比,它的运算速度很慢。

示例

存储 NUMERIC 值

如果插入值的小数位大于声明的小数位,则 PostgreSQL 会在插入前对值进行四舍五入。

NUMERIC 和 NaN

除了数字,NUMERIC 还可以存储一个特殊值:NaN。通常,NaN 和任何数字都不相等,同时也和它自己不相等。

下一篇:PostgreSQL 整型