【问题标题】:What is the difference between decimal and numeric in Postgres?Postgres中的十进制和数字有什么区别?
【发布时间】:2016-10-04 17:26:25
【问题描述】:

根据之前的一些建议,我正在将数据库中的一列从“money”更改为“numeric”。

查看 postgres 中的数据类型 -- https://www.postgresql.org/docs/current/static/datatype-numeric.html -- 我在描述中看不到数字和小数之间的任何区别。

十进制和数字有什么区别,我有什么理由应该在我的数据库中使用数字而不是十进制的价格?

【问题讨论】:

    标签: postgresql


    【解决方案1】:

    根据手册,它们是相同的。

    十进制和数字类型是等价的。这两种类型都是 SQL 标准。

    https://www.postgresql.org/docs/current/static/datatype-numeric.html

    区别在于允许不同行为的 SQL 标准:

    NUMERIC 必须与定义的一样精确 - 因此,如果您定义 4 个小数位,则 DB 必须始终存储 4 个小数位。

    DECIMAL 必须至少与定义的一样精确。这意味着数据库实际上可以存储比指定更多的数字(由于幕后存储有空间用于额外的数字)。这意味着数据库可能会存储 1.00005 而不是 1.0000,从而影响未来的计算。

    Difference between DECIMAL and NUMERIC

    【讨论】:

      最近更新 更多