PostgreSQL
中用浮点数来表示小数。浮点类型有两种: REAL
和 DOUBLE PRECISION
。
类型名称 | 说明 | 存储空间 |
REAL |
6位十进制数字精度 | 4字节 |
DOUBLE PRECISION |
15位十进制数字精度 | 8字节 |
在大多数系统平台上, REAL
类型的范围是 1E-37
到 1E+15
,精度至少是6位小数。 DOUBLE PRECISION
的范围通常是 1E-307
到 1E+308
,精度至少是15位数字,太大或者太小的数值都会导致错误。
PostgreSQL
也支持 SQL
标准表示法 float
和 float(p)
,用于声明非精确的数值类型。其中,p声明以二进制位表示的最低可接受精度。在选取 REAL
类型的时候, PostgreSQL
接受 float(1)
到 float(24)
,在选取 DOUBLE PRECISION
的时候,接受 float(25)
到 float(53)
。在允许范围之外的p值将导致错误。
注意:
没有声明精度的float将被当做 DOUBLE PRECISION
示例:
CREATE TABLE temp_table(x FLOAT(5), y REAL, z DOUBLE PRECISION);点击复制复制失败已复制
提示
在 PostgreSQL
中,浮点类型有几个特殊值: Infinity
表示 正无穷大
, -Infinity
表示 负无穷大
, NaN
表示 不是一个数字
。