postgres中数字数据类型的精度和规模是多少?

1mrurvl1  于 2021-07-26  发布在  Java
关注(0)|答案(2)|浏览(494)

文档中没有示例。
https://www.postgresql.org/docs/10/datatype-numeric.html#datatype-数字表
数字(精度、比例)
我想用最小的空间来保存一个正数,最多是100,我需要接受0.5的十进制增量
在这种情况下,我应该使用什么样的精度和比例?

bkkx9g8r

bkkx9g8r1#

使用 numeric(4, 1) .
这将为您提供最多4位数字(包括小数部分),保留1位小数,因此这将存储数字直到 999.9 .
如果你能忍受不大于 99.9 ,那么 numeric(3, 1) 很好。

w6mmgewl

w6mmgewl2#

NUMERIC(4,1) 可以,但也可以接受小数,例如:

55.0
26.3
978.1

这是因为precision声明了一个数字所能容纳的最大位数,而scale与小数部分有关。您还需要验证您的输入。
如果希望在数据库级别执行此操作,可以使用 CHECK column_name <= 100.0 . 这种检查也可以扩展到只接受带有 .0 以及 .5 小数部分(见模运算符)。

相关问题