postgresql - Postgres中数值数据类型的精度和比例是什么?
文档中没有例子。
https:/www.postgresql.orgdocs10datatype-numeric.html#DATATYPE-NUMERIC-TABLE
NUMERIC(精度,刻度)
我想用最小的空间来保存一个正数,这个正数最多是100,我需要接受0.5的小数增量。
在这种情况下,我应该使用什么精度和比例?
【回答】:
使用 numeric(4, 1)
.
这使你总共最多有4位数字(包括小数部分),其中1位数字保留给小数,所以这将存储的数字直到 999.9
.
如果你能忍受不大于的数字 99.9
那么 numeric(3, 1)
就可以了。
NUMERIC(4,1)
就可以了,但这也可以接受小数,如。
55.0
26.3
978.1
这是因为精确性声明了一个数字所能容纳的最大位数 而尺度则与小数部分有关。你还需要验证你的输入。
如果你想在数据库中进行验证,你可以使用 CHECK column_name <= 100.0
. 这样的检查也可以扩展到只接受具有以下特征的数字 .0
和 .5
小数部分(见modulo运算符)。