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 表示 不是一个数字 。